如何在菜单分支中获取对象的ID?

时间:2012-08-23 作者:daniel.tosaba

当显示菜单(或有关的菜单分支)时,是否可以打印所有菜单项的内容displaying menu branches) ?

enter image description here

一旦我点击About Us 我希望新页面显示所有子链接的内容。

因此,基本上我正在寻找一种方法来获取这些帖子/页面的ID,并在我的WP查询中使用它们。

1 个回复
最合适的回答,由SO网友:Rarst 整理而成

我懒得从头开始编写支持逻辑,所以我正在重用分支上链接答案的函数:

/**
 * Retrieve IDs of posts in branch of menu.
 *
 * @param mixed  $menu
 * @param string $branch_title
 *
 * @link http://wordpress.stackexchange.com/questions/2802/display-a-portion-branch-of-the-menu-tree-using-wp-nav-menu
 *
 * @return array
 */
function get_post_ids_from_menu_branch( $menu, $branch_title ) {

    $menu_object = wp_get_nav_menu_object( $menu );
    $menu_items  = wp_get_nav_menu_items( $menu_object->term_id );
    $items       = submenu_limit( $menu_items, (object) array( \'submenu\' => $branch_title ) );
    $items       = wp_list_filter( $items, array( \'object\' => \'post\' ) );
    $ids         = wp_list_pluck( $items, \'object_id\' );

    return $ids;
}

// example
var_dump( get_post_ids_from_menu_branch( \'Test menu\', \'Level 1\' ) );

结束

相关推荐

Register_nav_menus()不会注册菜单

请帮助进行菜单注册:我遵循了这个指南(http://codex.wordpress.org/Navigation_Menus)一步一步。向函数中添加了以下代码。php:function register_my_menus() { register_nav_menus( array(\'header-menu\' => __( \'Header Menu\' ) ) ); } add_action( \'init\', \'regist