管理员导航菜单下拉菜单的筛选器

时间:2015-05-28 作者:Howdy_McGee

简而言之,管理面板导航菜单下拉列表是否有过滤器?

对于非管理员,我需要删除修改/选择特定菜单的权限,但仍允许访问其他菜单。我需要过滤列出的菜单并取消设置特定的“主菜单”,但我很难找到正确的挂钩。

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

我相信你想要的过滤器是wp_get_nav_menus:

function wp_get_nav_menus( $args = array() ) {
    $defaults = array( \'hide_empty\' => false, \'orderby\' => \'name\' );
    $args = wp_parse_args( $args, $defaults );

     /**
     * Filter the navigation menu objects being returned.
     *
     * @since 3.0.0
     *
     * @see get_terms()
     *
     * @param array $menus An array of menu objects.
     * @param array $args  An array of arguments used to retrieve menu objects.
     */
    return apply_filters( \'wp_get_nav_menus\', get_terms( \'nav_menu\',  $args), $args );
}
Thewp_get_nav_menus() 函数用于的第383行wp-admin-nav-menus.php 设置$nav_menus 变量,该变量在整个文件中的多个位置使用,因此要非常小心。

结束

相关推荐

主题将css注入wp-admin

我的主题中的一些CSS正在wp admin中使用。例如,“添加新页面”/wp-admin/post-new.php?post_type=page 是蓝色的,这来自我的主题,正如Chrome代码检查器所述。这是我的主题的功能。php:<?php if ( ! isset( $content_width ) ) $content_width = 940; function register_my_menu() { register_nav_