这是所有宁愿远离 php 的设计师的 CSS 方法。它连接到 admin_body_class 并将 user-{role} 添加为 body 类。
函数.php代码:
function hide_using_css_user_role( $classes ) {
global $current_user;
foreach( $current_user->roles as $role )
$classes .= ' user-' . $role;
return trim( $classes );
}
add_filter( 'admin_body_class', 'hide_using_css_user_role' );
使用它,您可以在每个用户角色的管理员端隐藏/显示任何内容。在这种情况下,只需使用 :not css 选择器来确保它只对非管理员隐藏。
function add_my_custom_user_css() {
ob_start(); ?>
<style type="text/css">
:not(.user-administrator) #screen-options-link-wrap,
:not(.user-administrator) #contextual-help-link-wrap {
display:none !important;
}
</style>
<?php
echo ob_get_clean();
}
add_action ( 'admin_head', 'add_my_custom_user_css', 999);
这是一种非常老套的做事方式,但有时当您不知道正确的过滤器/操作来隐藏或更改 wordpress 中的内容时,这对于临时快速修复很有用。添加 999 将确保它被加载到 head 标签的末尾。请注意,它只是使用 css 隐藏,所以不要将它用于任何非常重要的事情,因为代码在源文件中仍然可见。
要从源中删除它,请改用 jquery。只需将上面的样式替换为以下内容:
<script type="text/javascript">
jQuery(document).ready(function($)) {
$( ":not(.user-administrator) #screen-options-link-wrap" ).remove();
}
</script>
'admin_body_class' 已经为我们提供了将页面添加到 body 类的好处,因此也针对特定页面,只需检查源代码,在 body 标记中您可以看到当前页面。例如,仪表板使用 .index-php。只需将其附加到 .user-administrator 或您要定位的任何用户,您就可以使用 css 和 javascript 为任何用户自定义管理员。