Intereting Posts
Свойства wpquery last_query и last_result: должны ли они быть общедоступными или частными? Есть ли крючок или фильтр при добавлении нового пользователя в WordPress? Получать сообщения по списку идентификаторов сообщений, упорядоченных по этим идентификаторам? Получать самые повторяющиеся сообщения из поиска? Итеративно добавьте вспомогательные короткие коды в php-массив Являются ли крючки синхронно? Плагин для тегов (добавить класс к?) Изображениям, прикрепленным к сообщению? Использование php для перезаписывания или замены тега заголовка при использовании yoast Показывать название категории на выбранном изображении в выдержке wordpress API-интерфейс WordPress REST – разрешения на возврат сделать разбивку на страницы, показывающие записи по дате Где скопировать файлы woocommerce в мою собственную тему, чтобы избежать редактирования основного плагина? WP 4.5 скрывает основные разделы Как добавить пользовательский идентификатор к каждому URL-адресу сообщения в wordpress Получить изображение из медиабиблиотеки по его категории

Печать прямых потомков категории с WP_Query

Поэтому мне трудно печатать только прямые дети категории на странице. Вот мой код:

$category_id = get_cat_ID('destinations'); $args = array('child_of' => $category_id); $categories = get_categories($args); $args = array ( 'category__and' => $categories->$cat_ID ); $recent_posts = new WP_Query($args); if ($recent_posts->have_posts()) : while ($recent_posts->have_posts()) : $recent_posts->the_post(); 

Этот код печатает каждую категорию независимо от того, кто является родителем. Если я изменю это:

$ recent_posts = новый WP_Query ('cat = 43'); Он печатает правильную категорию, но также все ее дети и дети детей (очевидно). Я просто хочу, чтобы непосредственно связанные дети были напечатаны. Я пошел вперед и повторил сериализацию ($ categories), которая вернула правильный массив. Однако, когда я сериализую ($ args) ПОСЛЕ 2-й декларации, это дает мне:

 a:1:{s:13:"category__and";N;} 

Это определенно странно. Почему на Земле он возвращает «N» для $ categories -> $ cat_ID? Я пытался сделать это весь день и не увенчался успехом. Я также пытался найти другой способ сделать то, что хочу, но ничего не получилось.

Есть идеи?

Из Кодекса:

  ребенок 
     (целое число) Отобразить все категории, которые являются потомками (т.е. детьми и внуками) категории, идентифицированной ее идентификатором.  Для этого параметра нет значения по умолчанию.  Если параметр используется, параметр hide_empty имеет значение false. 

А также…

 родитель  
     (целое) Отображать только те категории, которые являются прямыми потомками (то есть только для детей) категории, идентифицируемой ее идентификатором.  Это НЕ работает как параметр «child_of».  Для этого параметра нет значения по умолчанию.  [В 2.8.4]

Итак, во-первых, вы используете неправильный аргумент, если хотите только немедленные декодеры. Тебе нужно:

 $args = array('parent' => $category_id); 

Во-вторых, get_categories даст вам массив объектов, поэтому вам понадобится что-то подобное для извлечения идентификаторов.

 $cats = wp_list_pluck($categories,'cat_ID'); $args = array ( 'category__and' => $cats ); 

Даю вам:

 $category_id = get_cat_ID('destinations'); $args = array('parent' => $category_id); $categories = get_categories($args); $cats = wp_list_pluck($categories,'cat_ID'); $args = array ( 'category__and' => $cats ); $recent_posts = new WP_Query($args);