最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

post meta - Exclude a category from the filed under list

programmeradmin0浏览0评论

I have a site where I have a category that I'm using for some backend functionality. However, when I'm viewing a post that is in that category and other categories, I don't want to see that category in the list of categories that the post is "filed under" or "posted in" or whatever it's called.

To make it clearer - I have a category X that I'm using to do stuff for the theme. The post is categorized in A, B and X. On the post page, it says "Filed Under: A, B, X". I would like it to say "Filed Under: A, B"

I was looking for a way to exclude that category id from the get_terms call, but I'm not sure how to go about it. Is that even the right way? I originally thought this was a post_meta issue, but it seems it's get_terms related. Can I add a filter on get_terms to always exclude a category?

If it matters, I'm using the genesis framework, and this call happens in the do_action('genesis_after_post_content') call. But again, if I can add this as a global filter in my functions.php that'd be the best solution.

I have tried the method mentioned in this post, but it did not work.

I have a site where I have a category that I'm using for some backend functionality. However, when I'm viewing a post that is in that category and other categories, I don't want to see that category in the list of categories that the post is "filed under" or "posted in" or whatever it's called.

To make it clearer - I have a category X that I'm using to do stuff for the theme. The post is categorized in A, B and X. On the post page, it says "Filed Under: A, B, X". I would like it to say "Filed Under: A, B"

I was looking for a way to exclude that category id from the get_terms call, but I'm not sure how to go about it. Is that even the right way? I originally thought this was a post_meta issue, but it seems it's get_terms related. Can I add a filter on get_terms to always exclude a category?

If it matters, I'm using the genesis framework, and this call happens in the do_action('genesis_after_post_content') call. But again, if I can add this as a global filter in my functions.php that'd be the best solution.

I have tried the method mentioned in this post, but it did not work.

Share Improve this question edited Apr 13, 2017 at 12:37 CommunityBot 1 asked Sep 18, 2013 at 20:54 Jason LawtonJason Lawton 1516 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 1

I have found an answer at this article entitled "Excluding Categories from the_category();":

function the_category_filter($thelist,$separator=' ') {
     // list the IDs of the categories to exclude
     $exclude = array(4,5);
     // 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', 10, 2);
发布评论

评论列表(0)

  1. 暂无评论