目前我们无法通过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>\';
}
}
?>