您可以在上使用WP\\u查询nav_menu_item 因为它是自己的帖子类型。我从来没有这样做过,但也许它会像你需要的那样工作,值得一试。还有三种其他可能性:
选项1-获取导航菜单项wp_get_nav_menu_items() 它将返回一个菜单项数组,然后可以循环显示。下面是一个如何使用它的示例。有几个“明白了!”此处:
$item->ID 是当前导航项目IDnot 这个post_id. 帖子ID现在为$item->object_id.$item->title 是当前导航项目标题,不一定是post_title 虽然默认情况下是这样,但仍可以修改和更改。获取帖子标题最可靠的方法是使用object_id 并将其传递到get_the_title() 功能
$nav_items = wp_get_nav_menu_items( \'Main Menu\', array(
    \'order\'                  => \'ASC\',                  // List ASCending or DESCending
    \'orderby\'                => \'title\',                // Order by your usual, menu_order, post_title, etc. Check WP_Query
    \'post_type\'              => \'nav_menu_item\',        // To be honest, I\'m not sure why this is an option, leave it be.
    \'post_status\'            => \'publish\',              // If there are private / draft posts in our menu, don\'t show them
    \'output\'                 => ARRAY_A,                // Return an Array of Objects
    \'output_key\'             => \'menu_order\',           // Not sure what this does
    \'nopaging\'               => true,                   // Not sure what this does
    \'update_post_term_cache\' => false                   // Not sure what this does
) );
if( ! empty( $nav_items ) ) {
    foreach( $nav_items as $item ) {
        echo "{$item->title} - " . get_the_title( $item->object_id );
        echo "<br />\\n";
    }
}
 选项2-自定义导航助行器您可以使用
wp_nav_menu() 并传入一个
Custom Walker Function 修改其输出。例如,可以自动提取该菜单项的子页面,而无需实际将这些页面添加到物理菜单中。
Child Walker Class选项3-页面菜单顺序
通常,当我为客户创建网站时,我有一个WordPress菜单,并且我还使用页面属性镜像管理面板的页面顺序
menu_order. 这样,您可以使用
WP_Query 和
orderby => \'menu_order\'
除此之外,简而言之orderby => \'My Menu\', 你必须找到一个替代方案或解决方法。