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

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

Как запретить выводить закрепленные записи в 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, удачи!


Хостинг, которым я пользуюсь: Good-Host


Похожие статьи

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

*

code

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>