我有一个术语,我希望登录的管理员用户在浏览网站时看到,同时对公众隐藏。
我更愿意在尽可能低的级别上完成它,即使是为了防止该术语与任何函数(例如wp\\u list\\u categories)一起公开出现。
实现这一目标的最佳方式是什么?
我有一个术语,我希望登录的管理员用户在浏览网站时看到,同时对公众隐藏。
我更愿意在尽可能低的级别上完成它,即使是为了防止该术语与任何函数(例如wp\\u list\\u categories)一起公开出现。
实现这一目标的最佳方式是什么?
目前我们无法通过user_ID 或user_role 到wp_list_category()
函数,所以除非您使用过滤器来实现这一点,否则这是不可能的,这有点复杂,所以这里我有一个解决方案,它可以精确地实现您想要的,而不使用过滤器。
<?php
if ( current_user_can( \'manage_options\' ) ) {
/* A user with admin privileges */
wp_list_categories(); ?
} else {
/* A user without admin privileges */
wp_list_categories(\'exclude=4\'); // 4 is id of category you\'d like to hide
}
?>
更新-我认为使用get_category()
函数将是一个好主意,首先获取所有类别作为数组,然后根据需要显示它们。<?php
$categories = get_categories();
if(!current_user_can( \'manage_options\' )) {
$exclude = 4; // category ID to hide from non admin
} else {
$exclude = \'\';
}
foreach ( $categories as $cat ) {
if($cat->term_id != $exclude) {
echo \'<li>\'.$cat->name.\'</li>\';
}
}
?>
我正在使用一个插件向我的访问者显示一个条款和条件页面。访问者必须同意条款和条件,才能看到网站的实际内容。当此插件处于活动状态并且显示“条款和条件”页面时,它不会使用正常的主题呈现流。相反,该插件调用get\\u header()、get\\u footer()等直接呈现页面。执行此操作时,is\\u admin()将返回true,尽管我们确实应该将“条款和条件”页面视为前端,而不是仪表板/管理面板。该主题使用is\\u admin()来决定是否将某些javascript排入队列,因此它将错误的javasc