wp_query с неработающей кошкой

Я пытаюсь получить некоторый пользовательский тип сообщения из своей конкретной родительской категории.

<div class="tab-content"> <?php $cat_menu = get_categories('taxonomy=menu_categorie&type=menus'); foreach($cat_menu as $menu) { echo '<div role="tabpanel" class="tab-pane active fade" id="'.$menu->slug.'">'; $id = (int) $menu->cat_ID; $args = array( 'post_type' => 'menus', 'post_status' => 'publish', 'cat' => $id ); $recipes = new WP_Query($args); if($recipes->have_posts()) : while($recipes->have_posts()) : $recipes->the_post(); echo the_title(); endwhile; endif; echo '</div>'; } ?> </div> 

если я удалю, в массиве $ args, ключ «cat», он будет работать, но он выведет ВСЕ мое меню. Я хочу, чтобы иметь возможность выводить свой тип сообщения из категории category_id, но у меня ничего не появляется. Поэтому я думаю, что $ recipes ничего не имеет в этом, а затем терпит неудачу.

Есть ли что-то, что я пропустил, чтобы получить пользовательский тип сообщения с определенным идентификатором категории?

Из того, что вы написали до сих пор, кажется, что menu_categorie – это menu_categorie таксономия. Убедитесь, что это только. У меня такое ощущение, что у вас есть пропуски «с» с конца menu_categorie

В любом случае

Аргумент 'cat' => $id вы использовали, используется для таксономии по умолчанию, т.е. category .

Но в вашем случае у вас есть пользовательская таксономия menu_categorie .

Поэтому вам нужно использовать tax_query.

Так вот как будет выглядеть ваш код.

 <div class="tab-content"> <?php $cat_menu = get_categories('taxonomy=menu_categorie&type=menus'); foreach($cat_menu as $menu) { echo '<div role="tabpanel" class="tab-pane active fade" id="'.$menu->slug.'">'; $id = (int) $menu->cat_ID; $args = array( 'post_type' => 'menus', 'post_status' => 'publish', 'tax_query' => array( array( 'taxonomy' => 'menu_categorie', 'field' => 'id', 'terms' => $id ), ), ); $recipes = new WP_Query($args); if($recipes->have_posts()) : while($recipes->have_posts()) : $recipes->the_post(); echo the_title(); endwhile; endif; echo '</div>'; } ?> </div> 

Это должно сработать. Если это не поможет, сообщите мне