如果管理员登录,则在 WordPress 中加载不同的样式表

Posted

技术标签:

【中文标题】如果管理员登录,则在 WordPress 中加载不同的样式表【英文标题】:Load a different stylesheet in WordPress if an admin is logged in 【发布时间】:2013-08-16 04:21:06 【问题描述】:

我希望能够在我的主题中放置一个条件 php 代码,当管理员或只有一个用户 (ID=1) 登录时加载不同的样式表。

有没有 WordPress 功能可以实现这个功能?

这个 div 有一个类(比如说“示例”),在帖子上设置为“显示:无”。

我只想让管理员在登录时查看它,我将为该类创建一个新的 CSS 属性,例如:

.example 
display: block;

【问题讨论】:

【参考方案1】:

我从未使用过 WP,但如果您可以编辑代码,如果管理员已登录,您可以做一个简单的查询,然后使用一些内联代码

<div class="example" <?php if($admin == 1) echo 'style="display: block;"'; else echo 'style="display: none;"'; ?>> CONTENT </div>

【讨论】:

【参考方案2】:

您可以通过以下方式检查当前用户是否为管理员

    <?php

    if(current_user_can( 'manage_options' ))

     
     ... admin stuff....
    
    ?>

【讨论】:

我相信is_admin实际上是检查当前页面是否在管理区域,而不是检查当前用户是否是管理员。【参考方案3】:

你可以在functions.php中为此添加一个函数

function admin_stylesheet()

    if (current_user_can( 'manage_options' )) 

        wp_register_style('admin_css', get_template_directory_uri() . '/admin.css', array(), '1.0', 'all');
        wp_enqueue_style('admin_css'); 

    


add_action('wp_enqueue_scripts', 'admin_stylesheet');

【讨论】:

【参考方案4】:

你可以这样写

<?php 
     if ( is_user_logged_in() && current_user_can( 'manage_options' ) ) 
        ?>
        <style>
               .example 
                    display: block;
                
        </style>
        <?php 
      
?>

【讨论】:

【参考方案5】:

我会做三件事:

1) 确保在模板中使用标准的 WordPress body_class 函数。这将为您的 html 的 body 元素添加许多有用的类。

2) 在 body_class 上添加一个过滤器,以便在用户是管理员用户时向 body 添加一个新的辅助类。例如,在您主题的functions.php:

// Add specific CSS class by filter
add_filter('body_class','my_class_names');
function my_class_names($classes) 
    if (is_user_logged_in() && current_user_can('manage_options')) 
        $classes[] = 'admin-user';
    
    return $classes;

3) 在您的标准 CSS 样式表中使用这个新类来覆盖您在管理页面上的默认值:

.admin-user .example 
    display: block;

此解决方案以非常标准、主题友好的方式处理事情,并且避免使用单独的样式表或内联样式。

【讨论】:

我如何将 body_class 添加到我的模板中?我目前正在使用论文 1.8 框架。我可以添加 > 在一个钩子里让它工作? 在我看来,Thesis 有自己对 body 类的支持,请参阅 this example in the Thesis documentation。基本上,只需在步骤 2 中使用 thesis_body_classes 作为过滤器名称,而不是 body_class。您不需要第 1 步,因为 Thesis 默认已经支持正文类。 (看看你网站的源代码和它的论文主题,你应该已经在 body 元素上看到了一堆有用的类。) 啊,原来如此。非常感谢队友。 :)

以上是关于如果管理员登录,则在 WordPress 中加载不同的样式表的主要内容,如果未能解决你的问题,请参考以下文章

如果用户未登录,则在网页上显示“访客”

php 通过代码在WordPress中创建一个新的管理员用户。将此文件放在mu-plugins目录中并更新变量,然后在Wor中加载页面

如何在MySQL中加入查询以根据距离计算和Google地理编码查找WordPress帖子?

UITableViewCell重用后加载不正确的图像

如果用户登录 React 和 Typescript,则在刷新时重定向到仪表板

mac本地搭建wordpress