Flector

Как вывести записи только родительской рубрики?

WordPress по умолчанию добавляет записи дочерних рубрик в вывод записей родительской рубрики. Таким образом, вывести записи только родительской рубрики без записей дочерних рубрик нельзя. Данную ситуацию можно исправить с помощью такого кода, добавленного в файл functions.php вашей темы:

//вывод записей только родительской рубрики start
function wph_only_parent_category($query) {
    if (!is_admin() && $query->is_main_query() && $query->is_category())
        $query->set('category__in', array(get_queried_object_id()));
}
add_action('pre_get_posts', 'wph_only_parent_category');
//вывод записей только родительской рубрики end

Данный сниппет будет работать только с основным циклом вывода записей (свои циклы, заданные через query_posts будут игнорироваться). Если вас это не устраивает, то вы можете убрать проверку на основной цикл:

//вывод записей только родительской рубрики start
function wph_only_parent_category($query) {
    if (!is_admin() && $query->is_category())
        $query->set('category__in', array(get_queried_object_id()));
}
add_action('pre_get_posts', 'wph_only_parent_category');
//вывод записей только родительской рубрики end

Этот код будет работать с любыми циклами вывода записей.


Комментарии (4 комментария)
  1. игорь:

    Спасибо!!!

  2. Спасибо огромное! То что нужно!

  3. Artem:

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

  4. Mark:

    Спасибо Вам, бессребреники-человеколюбцы, за помощь! Работает код.

Написать комментарий

Для вставки кода воспользуйтесь кнопкой "Код". Используйте предпросмотр!