✅ Новости WEB и WordPress, темы, плагины. Здесь мы делимся советами и лучшими решениями для веб-сайтов.

Добавить следующую случайную публикацию в шаблон страницы WordPress с помощью SQL

2

Вы можете часто получать советы по улучшению SEO (поисковая оптимизация), добавляя ссылки на свои предыдущие сообщения при публикации нового сообщения. Это помогает увеличить трафик и работает аналогично плагинам, таким как «Относительные сообщения», но только проще.

Все сообщения WordPress хранятся в таблице, например , wp_posts, и внутри этой таблицы вы найдете post_title, post_name, и эти столбцы довольно просты. В зависимости от конфигурации ваших URL-адресов сообщений, у вас может быть разный формат постоянных ссылок, которые можно настроить в разделе «Настройки» — «Постоянные ссылки».

Следующий код PHP может быть вставлен в ваш шаблон страницы, обычно это single.php, который является шаблоном отдельного сообщения, или page.php для шаблона страницы.

Соответственно измените wp_posts, так как это может немного отличаться. SQL-запрос возвращает случайный пост, из которого исключены страницы или элементы меню, ссылки и т. д. И статус поста должен быть опубликован, что исключает черновик. Ограничение 1 возвращает только 1 сообщение. Поэтому, если вам нужен предыдущий пост, вы можете изменить его на limit 2.

Постоянная ссылка на моем сайте основана на post_name, что более удобно для SEO. Вы вполне можете настроить это. SQL-запрос также можно настроить. Например, вы можете захотеть вернуть релевантные сообщения вместо случайных сообщений, сопоставив titleзначение в соответствии с текущим заголовком сообщения. Или вы действительно хотите вернуть предыдущее или следующее сообщение, отсортированное по дате публикации, вы можете использовать поле «post_id».

Комментарии

Ю: «Круто, рандом действительно хорош. Также лучше убедиться, что случайное сообщение связано с текущим сообщением. Но это обычно не большая проблема, если блог относится к одному жанру.

Также порядок RAND() отлично работает для тысяч записей. (обычно для обычного блога). Но он сожжет вашу базу данных, если у вас есть миллионы записей в одной таблице, которые соответствуют критериям поиска».

Да, порядок SQL с помощью rand() немного сложен и медленный. Он должен получить все записи и отсортировать их случайным образом. Низкой эффективностью считается средний или большой размер таблицы. Вы можете использовать следующий трюк, чтобы получить случайную запись более быстрым способом, используя функцию rand() в PHP.

// get total number of records $query = "select count(1) from `table`"; $result = mysql_query($query) or die(mysql_error()); $total = mysql_result($result, 0, 0); // get a random $r = rand(0, $total - 1); // return a number between 0 and $total - 1 inclusive using PHP $query = "select * from `table` limit $r, 1"; $result = mysql_query($query) or die(mysql_error());

Причина ограничения SQL указывает смещение, а второй параметр указывает количество записей для выборки.

Лучшая случайная запись

В соответствии с вышеизложенным порядок с помощью rand() крайне неэффективен, если у вас очень большая таблица, потому что для сортировки (даже если вам нужен только один элемент) будет вызываться функция rand(), а это то, что мы не делаем. хочу. Мы можем улучшить вышеизложенное, используя два запроса, первый из которых возвращает общее количество сообщений, и у нас есть случайная функция PHP, и мы получаем случайную запись с помощью оператора limit.

Источник записи: helloacm.com

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее