Множество циклов внутри функции

Что я понимаю из CODEX, ( https://codex.wordpress.org/Class_Reference/WP_Query#Multiple_Loops ).

то я пытаюсь сделать список сообщений вроде этого:

<nav id="cbp-hrmenu" class="cbp-hrmenu main-menu"> <ul> <li> <a href="#">Secciones</a> <div class="cbp-hrsub"> <div class="cbp-hrsub-inner"> <div> <h4><a href="#" class="menu-section">Topic 1</a></h4> <ul> <?php echo get_posts_menus('topic-1','3'); ?> </ul> <h4><a href="#" class="menu-section">Topic 2</a></h4> <ul> <?php echo get_posts_menus('topic-2','3'); ?> </ul> </div> <div> <h4><a href="#" class="menu-section">Topic 3</a></h4> <ul> <?php echo get_posts_menus('topic-3','3'); ?> </ul> <h4><a href="#" class="menu-section">Topic 4</a></h4> <ul> <?php echo get_posts_menus('topic-4','3'); ?> </ul> </div> </li> </ul> </nav> 

Если вы заметили, я get_posts_menus() функцию с именем get_posts_menus() .

Где функция, которую я использую:

 if (!function_exists('get_posts_menus')): function get_posts_menus($category_name, $count) { $permalink = get_the_permalink(); $title = get_the_title($the_menu->post->ID); $post_class = get_the_id(); $args = array( 'category_name' => $category_name, 'posts_per_page' => $count ); $the_menu = new WP_Query($args); while ($the_menu->have_posts()) { $the_menu->the_post(); echo "<li class=\"post-id-$post_class\"><a href=\"$permalink\" alt=\"$title\">$title</a></li>"; } wp_reset_postdata(); } endif; 

Что здесь произошло, так это то, что он вернет нам только последнее сообщение 3 раза.

Но основная идея заключается в том, что это возвращает 3 последних поста этой категории.

Я очень смущен этим, что я начинаю думать об использовании JSON вместо wp_query.

Спасибо

Solutions Collecting From Web of "Множество циклов внутри функции"

Заголовок permalink и post не будет доступен до тех пор, пока вы не запустите запрос. следующее должно вернуть последние 3 должности из назначенной категории.

один и тот же пост отображается 3 раза, потому что это не похоже на то, что вы устанавливаете постоянную ссылку или публикуете заголовок из цикла «цикл»,

 if (!function_exists('get_posts_menus')): function get_posts_menus($category_name, $count) { $args = array( 'category_name' => $category_name, 'posts_per_page' => $count ); $the_menu = new WP_Query($args); while ($the_menu->have_posts()) { $post_class = get_the_id(); $permalink = get_the_permalink(); $title = get_the_title(); $the_menu->the_post(); echo "<li class=\"post-id-$post_class\"><a href=\"$permalink\" alt=\"$title\">$title</a></li>"; } wp_reset_postdata(); } endif;