您可以在上使用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\'
, 你必须找到一个替代方案或解决方法。