Как запретить выводить закрепленные записи в WordPress?

Приветствую вас дорогие читатели! В этом небольшом уроке я приведу пример кода, с помощью которого можно запретить выводить закрепленные записи.

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

Если для вывода записей вы используете только одну функцию на странице (например, query_posts), то всё будет нормально.

Но если вы захотите вывести на одной странице сначала, например, блок новостей с одними определенными параметрами, а потом блок новостей с другими параметрами, то вам понадобится уже 2 цикла (две функции query_posts), а это значит что закрепленные записи выведутся из там и там!

Пример такого кода, при условии, что у нас закреплено 3 записи:

$args_1 = array(
        'cat' => '10',
        'showposts' => 6
);
query_posts( $args_1 );

Здесь мы выводим 6 записей из рубрики с id 10:

 

$args_2 = array(
        'cat' => '20',
        'showposts' => 10    
);
query_posts( $args_2 );

Здесь мы выводим 10 записей из рубрики с id 20:

В результате работы двух этих функций на экран будет выведено сначала 9 записей из рубрики с id 10, а потом 13 записей из рубрики с id 20 – то есть произойдет дублирование трех закрепленных статей.

Исправить эту проблему можно так:

$args_1 = array(
        'cat' => '10',
        'showposts' => 6
);
query_posts( $args_1 );

                        
$sticky_array = get_option( 'sticky_posts' ); //массив с id закрепленных записей

$args_2 = array(
        'cat' => '20',
        'showposts' => 10,
        'post__not_in' => $sticky_array,     
);
query_posts( $args_2 );

Первый цикл мы оставляем без изменений – в нем будут выводиться закрепленные записи.

После этого в переменную (массив) мы записываем id всех закрепленных записей, после чего подставляем его во второй цикл, указав в параметре – “post__not_in”, то есть просто указываем id тех статей, которые выводить не нужно.

Вот, в принципе, и всё, предлагаю посмотреть и другие уроки по WordPress, удачи!