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

时间:2013-08-14 09:28:54

标签: php css wordpress wordpress-theming

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

是否有WordPress功能来实现这一目标?

这个div有一个类(让我们说“示例”),在帖子上设置为“display:none”。

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

.example {
display: block;
}

5 个答案:

答案 0 :(得分:6)

您可以在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');

答案 1 :(得分:2)

我从未使用WP,但如果您可以编辑代码,则可以在管理员登录后进行简单查询,然后使用一些内联代码

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

答案 2 :(得分:2)

我会做三件事:

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

2)在body_class上添加一个过滤器,当用户是admin用户时,向主体添加一个新的帮助器类。例如,在您的主题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;
}

此解决方案以非常标准,主题友好的方式执行操作,并避免使用单独的样式表或内联样式。

答案 3 :(得分:1)

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

    <?php

    if(current_user_can( 'manage_options' ))

     {
     ... admin stuff....
    }
    ?>

答案 4 :(得分:1)

您可以写如下

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