Get_pages в Wordpress
Не могу составить логику вывода дочерних страниц "Карточки товара" используя get_pages в Wordpress. Условия таковы:
У страницы "Каталог" есть дочерние элементы использующие тот же шаблон catalog.php. У тех в свою очередь, так же есть дочерние страницы 3-его уровня, которые берут на себя тот же шаблон.
А в следующих используется дочерний элемент шаблона страницы "Карточки товара" (item.php) Архитектура выглядит так:
"Каталог"->"Кухни по форме"->"Прямые кухни"->"Кухни Мария" (/katalog/kuhni-po-forme/pryamye/kuhni-mariya).
Логика должна быть такова.
Все карточки товара которые принадлежат "Прямым кухням" должны выводиться на ней. В разделе "Кухни по форме" должны выводиться все карточки товара которые есть у всех дочерних элементов этой рубрики (То есть все товары которые есть например у "Прямых кухонь", "П-образных кухонь" и т.д.), а в "Каталог должны выводиться вообще все товары которые есть.
Хук выглядит следующим образом.
<?php
$pages = get_pages( [
'sort_order' => 'DESC',
'sort_column' => 'post_date',
'child_of' => $post->ID, //Указываю ID страницы для вывода ее дочерни элементов
'meta_key' => '_wp_page_template',
'meta_value' => 'item.php', //Говорю что должны выводиться только "Карточки товара"
'hierarchical' => 0,
'post_type' => 'page',
'post_status' => 'publish',
] );
foreach( $pages as $post ){
setup_postdata( $post );
?>
Естественно если я указываю что должны выводиться только страницы использующие шаблон item.php, то он не будет даже просматривать страницы с шаблоном "Каталога", но если не использовать этот аргумент, то он будет динамически выводить вообще все страницы которые есть на сайте. Вопрос. Как пофиксить?