Здесь будут рассмотрены 2 варианта вывода случайных записей на странице. Один — через «query_post», если перед конструкцией «if (have_posts())» и второй — через «WP_Query», когда конструкция что-то вроде «if ($loop->have_posts())».
Содержание
Вывод постов через query_posts
Чтобы вывести записи рандомно в движке WordPress, можно использовать функцию «query_posts()» с параметром «orderby=rand&showposts=5» (выведет случайных 5 постов из всех рубрик). Данная функция размещается перед конструкцией «<?php if (have_posts()) : ?>» вот так:
1
2
3
4
5
6
7
8
9
|
<?php query_posts(‘orderby=rand&showposts=5’); ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
// Какой-то код в вашем шаблоне темы
<?php endwhile; endif; ?>
|
Этот код редактируется в том файле шаблона темы, который отвечает за ту страницу на которой вам нужно изменить порядок вывода записей на сайте. Например: category.php, home.php и т.п.
Если убрать из параметра «&showposts=5», то будет выводиться количество записей заданное в системе, как и было.
Вывод постов через new WP_Query
Встречался еще такой вариант, когда вместо простого «if (have_posts())» посты выводится через код вроде этого:
1
2
3
4
5
6
7
8
9
10
11
|
<?php $loop = new WP_Query($args);
if ($loop–>have_posts()) {
?> // Какой-то код в HTML для Ajax
<?php while ($loop–>have_posts()){
$loop–>the_post();
// Какой-то код }
?>
|
Здесь нужно просто в параметрах функции «WP_Query» вместо «$args» указать параметр «’orderby=rand&showposts=5’»:
1
2
3
4
5
6
7
8
9
10
11
|
<?php $loop = new WP_Query(‘orderby=rand&showposts=5’);
if ($loop–>have_posts()) { ?>
// Какой-то код в HTML для Ajax
<?php while ($loop–>have_posts()){
$loop–>the_post();
// Какой-то код }
?>
|
- (‘meta_key=series&meta_value=dozory’) – вывод записей с произвольным полем «series» и его значением «dozory».
- (‘cat=6&year=2018’) – вывод записей из категории с id=6, за 2018 год;
- (‘cat=-2’) – не выводить категорию с id=2;
- (‘cat=-1,-4,-6’) – не выводить категории с id, равным 1, 4 и 6;
- (‘orderby=rand&showposts=17’) – случайные 17 записей из всех категорий;
- (‘cat=1,3,6’) – вывести категории с id, равным 1, 3 и 6;
- (‘category_name=Моя рубрика’) – вывести категорию с названием «Моя рубрика»;
- (‘orderby=rand&showposts=11&cat=7’) – вывести рандомных 11 записей из категории, id=7;
- (‘name=Вывод случайных статей в WordPress’) – вывод записи с названием «Вывод случайных статей в WordPress»;
- (‘p=44’) – вывод одной записи с id=44;
- (‘pageid=22’) – вывод одной страницы с id=22;
- (‘pagename=Контакты’) – вывод страницы с названием «Контакты»;
- (‘cat=6&showposts=10’) – вывод 10 постов из категории с id=6;
- (‘cat=2&orderby=date&order=ASC’) – вывод записей из категории с id=2 по дате в хронологическом порядке (первыми идут свежие записи. Если нужно вывести в обратном порядке, то заменить ASC на DESC);
- (‘posts_per_page=20’) – вывести на страницу 20 постов. Если задать «-1», то будут выводиться все посты;