从前端隐藏类别,但不隐藏管理员/帖子编辑器

时间:2013-11-22 作者:Ian Douglas

我在函数中使用以下代码。我的主题的php,隐藏用于组织帖子的特定类别,并从帖子本身及其类别列表填充滑块:

function the_category_filter($thelist,$separator=\' \') {
 // list the IDs of the categories to exclude
 $exclude = array(1,32,42,4);
 // create an empty array
 $exclude2 = array();

 // loop through the excluded IDs and get their actual names
 foreach($exclude as $c) {
      // store the names in the second array
      $exclude2[] = get_cat_name($c);
 }

 // get the list of categories for the current post     
 $cats = explode($separator,$thelist);
 // create another empty array      
 $newlist = array();

 foreach($cats as $cat) {
      // remove the tags from each category
      $catname = trim(strip_tags($cat));

      // check against the excluded categories
      if(!in_array($catname,$exclude2))

      // if not in that list, add to the new array
      $newlist[] = $cat;
 }
 // return the new, shortened list
 return implode($separator,$newlist);
}

// add the filter to \'the_category\' tag
add_filter(\'the_category\',\'the_category_filter\', 1, 32, 42, 4);
这很好,但它也隐藏了后期编辑后端中的类别。我可以看到勾选框,但类别名称已隐藏。

是否有人可以建议对上述代码进行调整,以保留其在前端隐藏类别的功能,但保持类别在编辑后窗口/WP后端可见?

2 个回复
SO网友:Milo

如果出现以下情况,请不要应用过滤器is_admin().

无关-您还应该看看add_filter, 你的论点不正确。

SO网友:Pedro Marques

您可以执行以下操作:

如果(!is\\u admin()){

// Exclude categories.
}

更多示例请参见:https://developer.wordpress.org/reference/functions/is_admin/

结束

相关推荐

Get_the_Categories筛选器返回空数组

我正在开发一个主题,使用get_the_category_list() 函数(在category template.php中)。通过检查其代码,此函数调用get_the_category() 函数(位于category template.php中),该函数应用get_the_categories 末端过滤器:return apply_filters( \'get_the_categories\', $categories ); 出于某种奇怪的原因,此过滤器返回一个空数组。如果我将此行替换为:re