「2013年12月の記事」というような日付アーカイブのページでは、wp_title
関数が生成するページタイトルが「 2013 » 12月」のようになってしまいます。
※区切り文字「»」の部分は、wp_title
関数の引数によって変わります
このタイトルを「2013年12月」と変更する方法を紹介します。
ページタイトルの変更
wp_title
関数が生成するページタイトルを「YYYY年MM月DD日」というフォーマットに変更するには、functions.phpに下記のコードを追加するだけでOKです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
function jp_date_wp_title( $title, $sep, $seplocation ) { if ( is_date() ) { $m = get_query_var('m'); if ( $m ) { $year = substr($m, 0, 4); $month = intval(substr($m, 4, 2)); $day = intval(substr($m, 6, 2)); } else { $year = get_query_var('year'); $month = get_query_var('monthnum'); $day = get_query_var('day'); } $title = ($seplocation != 'right' ? " $sep " : '') . ($year ? $year . '年' : '') . ($month ? $month . '月' : '') . ($day ? $day . '日' : '') . ($seplocation == 'right' ? " $sep " : ''); } return $title; } add_filter( 'wp_title', 'jp_date_wp_title', 10, 3 ); |
ページを再表示すると、タイトルが変更されました。
ページ内での年月日表示
アーカイブページ内での年月日を表示するsingle_month_title
関数があります。
しかし、この関数を使用すると、今度は「12月2013」というフォーマットの表記になってしまいます。
1 |
<?php single_month_title(); ?> |
そこで、single_month_title
関数の代用として、前出のコードをfunctions.phpに追加した上でwp_title
関数を使用します。
1 |
<?php echo trim(wp_title('', false)); ?> |
これで正常な表示になりました。