Hide add new page button

时间:2018-12-17 作者:aggtr

我想对非管理员用户隐藏“添加新页面”按钮。我成功地从右列隐藏了子菜单项,如下所示:

$page = remove_submenu_page( \'edit.php?post_type=page\', \'post-new.php?post_type=page\' );
我试图用本文中建议的css隐藏页面中的按钮question 但没有起作用。我如何才能做到这一点?以下是我的-失败-尝试:

if (isset($_GET[\'post_type\']) && $_GET[\'post_type\'] == \'page\') {
            echo \'<style type="text/css">
            #favorite-actions, .add-new-h2, .tablenav { display:none; }
            </style>\';
        }

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

仅使用CSS就可以很容易地实现这一点。首先,我们将添加一个函数,该函数将根据用户的角色向body标记输出一个类。然后,我们将一个样式表排队显示在管理中。然后使用主体中的类来定位和隐藏按钮。

Add Body Class Based on User Role - 添加到函数。php

function custom_role_admin_body_class( $classes ) {
    global $current_user;
    foreach( $current_user->roles as $role )
        $classes .= \' role-\' . $role;
    return trim( $classes );
}
add_filter( \'admin_body_class\', \'custom_role_admin_body_class\' );
Enqueue Admin Styles - 添加到函数。php

function custom_admin_styles(){
    wp_enqueue_style(
        \'admin_css\', 
        get_stylesheet_directory_uri() . \'/css/admin-styles.css\', array(), filemtime( get_stylesheet_directory() . \'/css/admin-styles.css\') 
    );
}
add_action(\'admin_enqueue_scripts\', \'custom_admin_styles\');

Use Body Class to Hide Button for NON admin users

body.edit-php.post-type-page:not(.role-administrator) .page-title-action {
    display: none;
}

SO网友:Tejas Gajjar

安装User Role Editor 这个插件将为您提供按用户角色隐藏选项的选项,并让我知道这是否有效,以便我可以提供另一个选项。

相关推荐

如何将.css文件应用于虚拟页面?

如果使用以下插件在保持主题完整的情况下创建虚拟页面wp-virtual-page-tutorial, 怎么可能。css文件是否应用于此虚拟页面?如何使用将虚拟页名称用作条件的if语句来实现这一点?任何帮助都将不胜感激。以下是创建虚拟页面的代码:Class VPTutorial { function __construct() { register_activation_hook( __FILE__, array( $this, \'activate\' ) );&#