私がWordpress 3.0を使用しているサイトで、私が単一の投稿をしているとき、カテゴリを示すナビゲーションバーは親カテゴリに "current_cat"のクラスを与えないので、そのカテゴリはハイライトされません。
どのようにWordPressにsingle_postモードで親クラスにそのクラスを与えるようにさせることができますか?
私は答え をここに見つけました 。
functions.phpに次の関数とフックを追加してください:
function sgr_show_current_cat_on_single($output) {
global $post;
if( is_single() ) {
$categories = wp_get_post_categories($post->ID);
foreach( $categories as $catid ) {
$cat = get_category($catid);
// Find cat-item-ID in the string
if(preg_match('#cat-item-' . $cat->cat_ID . '#', $output)) {
$output = str_replace('cat-item-'.$cat->cat_ID, 'cat-item-'.$cat->cat_ID . ' current-cat', $output);
}
}
}
return $output;
}
add_filter('wp_list_categories', 'sgr_show_current_cat_on_single');