Как исключить прилепленные записи из цикла WordPress

Прилепленные записи – идеальный способ акцентировать внимание на популярном контенте. Одного есть некоторые места на сайте, где прилепленные записи не должны занимать верхние позиции. WordPress не догадывается об этом — вы должны напрямую исключить прилепленные записи из произвольного цикла. В данной статье мы покажем вам, как полностью исключить прилепленные записи из цикла WordPress, а также покажем, как убрать возможность прилепливания, чтобы записи выводились в своем естественном временном порядке.

Как убрать возможность прилепливания у записей

Когда вы выводите последние записи во вкладках, вам не требуется вывод прилепленных записей. Если не удалить функцию прилепливания, область последних записей будет попросту бесполезна, поскольку все ваши прилепленные записи забьют ее до отказа. В данном случае на выручку приходит функция query_posts.

Чтобы сделать это, вам понадобится несколько изменить ваш цикл:

<?php
$args = array(
	'posts_per_page' => 10,
	'ignore_sticky_posts' => 1
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post();
?>

Данный код игнорирует тот факт, что запись является прилепленной, и выводит все записи в обычном порядке. Ваши прилепленные записи будут представлены в цикле, но они не будут находиться в топе.

nonstickyposts

Полное исключение прилепленных записей из цикла

Если вы используете прилепленные записи в слайдере, то иногда возникает необходимость полного исключения их из цикла. Все, что нужно сделать, это отредактировать произвольный цикл, чтобы он был похож на следующее:

<?php
$the_query = new WP_Query( array( 'post__not_in' => get_option( 'sticky_posts' ) ) );
if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post();
?>

Код не будет выводить прилепленные записи в цикле постов.

Блог про WordPress
Комментарии: 8
  1. Александр

    Здравствуйте, у меня вопрос как обычно, не совсем в тему :-)
    Сам движок WordPress, в следствии ошибки на сервере или чего-то подобного может глюкануть?
    Вчера после обеда заметил: у меня в теме для анонсов статей не было прописано специально «Читать далее», а использовалась стандартная запись русскоязычной версии WordPress — (далее…)
    а вечером смотрю — везде пишет по английски — (more…)
    В следствии расследования оказалось, что были «поломаны» 2 файла самого движка — license.php и ещё какой-то.
    Следов взлома, вирусов и других побочных явлений вроде не было.
    Или всё-же кто-то взломал, как вы думаете?

    1. Дмитрий (автор)

      Может быть, просто тема случайно обновилась?

  2. Александр

    Не, тему я сам писал, она не может обновиться, тут именно файлы самого WordPress перестали работать…

    Я тоже испортить ничего не мог, потому что не только на сервер, но даже в админку несколько дней не заходил.

  3. Александр

    Проблема вообще быстро решилась просто переустановкой движка….

    Но вот чё это было??? ужасно интересно…

  4. Александр

    Загадка разгадана — пообщался на всякий случай с поддержкой и — это хостер без уведомления своих пользователей начал внедрять в наши сайты свои разработки по защите.

    1. Дмитрий (автор)

      Насколько я убедился, 80% случаев таких сбоев — это как раз действия хостеров. Сам в первую очередь тоже пишу в поддержку, и только потом уже смотрю, что могло произойти, ибо само собой ничего не случается )

  5. Альберт

    Здравствуйте. Как убрать надпись прилеплена со значком возле записи?

    1. Дмитрий (автор)

      Все зависит от используемой темы. Все графические элементы реализуются по-разному. В общем случае вам нужно смотреть CSS-стили и изменять их.

Добавить комментарий

Получать новые комментарии по электронной почте.