このブログは<title>を「記事タイトル+ブログ名」と出力していたのですが、これだと何についての記事なのか分かりづらいのでカテゴリ名を<title>に加えることにしました。
もちろん今まで書いた記事のタイトルを手作業で修正するなんて大変すぎますので、wp_title()に対するフィルターフックを使用してカテゴリ名を追加するという処理を行いました。
以下のスクリーンショットのように[カテゴリ名]記事タイトル | ブログタイトルとなるようにしています。
当初のタイトルは
1 |
<?php wp_title(' | ', true, 'right'); ?><?php bloginfo('name'); ?> |
と記述しており、このフィルターフックはwp_titleの冒頭に[カテゴリ名]という記述を追加するものです。
functions.phpに以下のように記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
add_filter('wp_title', 'ct_title'); function ct_title($title) { if(is_single()){ $temp = ''; $cat = get_the_category(); foreach($cat as $val){ $temp .= '['.$val->name.']'; } $title = $temp . $title; return $title; } else { return $title; } } |
カテゴリーではなく、タグをtitleに入れたい場合は以下のようになります。get_the_categoryがget_the_tagsになるだけでまったく同じです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
add_filter('wp_title', 'tag_title'); function tag_title($title) { if(is_single()){ $temp = ''; $cat = get_the_tags(); foreach($cat as $val){ $temp .= '['.$val->name.']'; } $title = $temp . $title; return $title; } else { return $title; } } |
カスタムタクソノミーの場合も同様にget_the_termsを使用して記事が属するタクソノミーを取得します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
add_filter('wp_title', 'term_title'); function terms_title($title) { if(is_single()){ global $post; $temp = ''; $cat = get_the_terms($post->ID,'タクソノミー名'); foreach($cat as $val){ $temp .= '['.$val->name.']'; } $title = $temp . $title; return $title; } else { return $title; } } |
ADs