我希望能够在我的主题中放置一个条件 PHP 代码,当管理员或只有一个用户(ID = 1)登录时加载不同的样式表。
有没有 WordPress 功能来实现这一点?
这个 div 有一个类(比如说“示例”),在帖子上设置为“显示:无”。
我只希望管理员在登录时查看它,我将为该类创建一个新的 CSS 属性,例如:
.example {
display: block;
}
我希望能够在我的主题中放置一个条件 PHP 代码,当管理员或只有一个用户(ID = 1)登录时加载不同的样式表。
有没有 WordPress 功能来实现这一点?
这个 div 有一个类(比如说“示例”),在帖子上设置为“显示:无”。
我只希望管理员在登录时查看它,我将为该类创建一个新的 CSS 属性,例如:
.example {
display: block;
}
您可以在 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) 确保在模板中使用标准的 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;
}
这个解决方案以一种非常标准、主题友好的方式做事,并且避免使用单独的样式表或内联样式。
我从未使用过 WP,但如果您可以编辑代码,您可以在管理员已登录的情况下进行简单查询,然后使用一些内联代码
<div class="example" <?php if($admin == 1){ echo 'style="display: block;"';} else{ echo 'style="display: none;"'; ?>> CONTENT </div>
你可以像下面这样写
<?php
if ( is_user_logged_in() && current_user_can( 'manage_options' ) ) {
?>
<style>
.example {
display: block;
}
</style>
<?php
}
?>
您可以通过以下方式检查当前用户是否为管理员
<?php
if(current_user_can( 'manage_options' ))
{
... admin stuff....
}
?>