My WordPressブログには、内部作業に使用されるいくつかのカテゴリがあります。各投稿の下に表示されるブログホームページのカテゴリリストでそのカテゴリを非表示にします。
カテゴリリストを次のように印刷しますprint(the_category($postID));
そのカテゴリリストのフィルタを非表示にするか、各投稿の下に印刷する方法はありますか?
My WordPressブログには、内部作業に使用されるいくつかのカテゴリがあります。各投稿の下に表示されるブログホームページのカテゴリリストでそのカテゴリを非表示にします。
カテゴリリストを次のように印刷しますprint(the_category($postID));
そのカテゴリリストのフィルタを非表示にするか、各投稿の下に印刷する方法はありますか?
私の解決策:
.cat-item-1 {display:none;}
選択したカテゴリをフロント エンドで非表示にする場合は、get_the_terms
フィルタを使用してみてください。たぶんこのように、これをあなたのfunctions.php
add_filter('get_the_terms', 'hide_categories_terms', 10, 3);
function hide_categories_terms($terms, $post_id, $taxonomy){
// list of category slug to exclude,
$exclude = array('your-term-slug', 'another-term-to-hide');
if (!is_admin()) {
foreach($terms as $key => $term){
if($term->taxonomy == "category"){
if(in_array($term->slug, $exclude)) unset($terms[$key]);
}
}
}
return $terms;
}
投稿のカテゴリを取得し、不要なものを取り出して表示する必要があります。
<?php
$postCats = wp_get_post_categories($post->ID);
$cats = array();
foreach($postCats as $c){
$cats[]= get_cat_name($c);
}
$dontShow = array("List","the","Categories","here");
echo implode(", ", array_diff($cats,$dontShow);
?>
$exclu_categories=array(
1=>'',
34 => '',
45=>'',
);
$categoires=get_the_category();
foreach($categoires as $category) {
$cat_id=$category->cat_ID;
$cat_name=$category->name;
if(!isset($exclu_categories[$cat_id])) {
echo $cat_name;
}
}