WordPress отображает только сообщения, которые имеют определенную родительскую категорию - PullRequest
0 голосов
/ 13 сентября 2018

Я хотел бы запрашивать сообщения на основе конкретных category_parent id.Это используется как функция фильтрации для пользователей, чтобы фильтровать посты на основе родительского типа категории.У меня есть несколько категорий, которые имеют несколько дочерних категорий.Например, Fruits является родительской категорией, тогда дочерние категории могут быть красного, синего, оранжевого цвета.Овощи являются родительской категорией, а также имеют красные, синие и оранжевые дочерние категории.Я хотел бы, чтобы пользователи фильтровали и видели все дочерние категории овощей или все дочерние категории фруктов.

Я использую идентификатор категории вместо пули в моем случае.Например, я хочу запросить все сообщения, родительская категория которых 17 и 19. (фиктивная).

add_action( 'pre_get_posts', 'additional_query', 1, 1);       
function additional_query( $query ){
     $tax_query = array(
                array( 
                    "taxonomy" => "category", 
                    "field" => 'term_id',
                    "terms" => array(17, 19)
                )
            );
            $query->set( "tax_query", $tax_query );
}

Однако, когда я делаю get_categories(), возвращаемые сообщения по-прежнему содержат другие категории, чей родительне 17 а 19. Как мне подойти к этой проблеме?Благодарю.

1 Ответ

0 голосов
/ 13 сентября 2018

Пожалуйста, попробуйте это:

add_action( 'pre_get_posts', 'additional_query', 1, 1);       
function additional_query( $query ){

            $query->set( "category__and",array(17, 19));

}
...