Содержание
Здесь будут рассмотрены 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», то будут выводиться все посты;