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

问题描述 投票:0回答:6

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

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

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

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

.example {
display: block;
}
php css wordpress wordpress-theming
6个回答
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');

2
投票

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

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

2
投票

我会做三件事:

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

2) 在 body_class 上添加过滤器,以便当用户是管理员用户时向正文添加新的帮助器类。例如,在您主题的

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;
}

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


1
投票

你可以像下面这样写

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

1
投票

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

    <?php

    if(current_user_can( 'manage_options' ))

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

0
投票

实现此目的的另一种方法是将管理样式表注册和排队操作添加到

admin_head
钩子,

function add_custom_stylesheets_admin() {
    $handle = '<HANDLE>';
    $src = '<PATH_TO_STYLESHEET>';
    wp_register_script($handle, $src);
    wp_enqueue_style($handle, $src, array(), null, null);
}
add_action('admin_head', 'add_custom_stylesheets_admin');
© www.soinside.com 2019 - 2024. All rights reserved.