如果管理员登录,则在 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帖子?