Поддержка Проблемы и решения Скрипт для удаления дочерних рубрик ломает фильтр записей в админке

  • Добрый день.
    На сайте задача: не выводить в рубриках записи из дочерних рубрик, только из текущей. Использовала для этого скрипт:

    function exclude_category_children( $query ) {
        if ( $query->is_category() && $query->is_main_query() ) {
            $query->set( 'tax_query', [
                [
                    'taxonomy'         => 'category',
                    'field'            => 'slug',
                    'terms'            => $query->query_vars['category_name'],
                    'include_children' => false
                ],
            ] );
        }
    }
    add_action( 'pre_get_posts', 'exclude_category_children' );

    Свою задачу выполняет, но оказалось, что этот скрипт ломает работу фильтра записей в админке: поиск по датам работает нормально, а по рубрикам — пишет «Записей не найдено».

    Как можно это исправить? Или, может быть, есть ли другой способ для невывода дочерних рубрик, без побочек?

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Модератор Yuri

    (@yube)

    скрипт ломает работу фильтра записей в админке

    Добавьте условие ! is_admin()

    Или, может быть, есть ли другой способ

    Вот тут http://blog.portal.kharkov.ua/2011/08/31/in_cat_only/, смотрите второе, более актуальное, если так можно сказать о записи 11-го года)) , решение.

    Спасибо, я это сохраню на будущий случай. Но, как это часто бывает — клиент расхотел. Может, с другим пригодится.

    • Ответ изменён 4 года, 10 месяцев назад пользователем greatebattle.
Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «Скрипт для удаления дочерних рубрик ломает фильтр записей в админке» закрыта для новых ответов.