wp_title()の日付アーカイブのタイトルを変更する (「○年○月○日」など)
wp_title()で日付アーカイブのタイトルを表示すると、「<title>タグを表示する」の表示例のように「2015 1月 01」という不自然な表示になってしまいます。これを「2015年01月01日」のように変更するにはfunctions.phpに下記のように記載します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
/** * wp_title()の日付アーカイブのタイトルを変更します。 */ function adjust_date_title( $title, $sep, $seplocation ) { $m = get_query_var( 'm' ); $year = get_query_var( 'year' ); $monthnum = get_query_var( 'monthnum' ); $day = get_query_var( 'day' ); $date_title = ''; // mパラメータがある場合 (パーマリンク設定がデフォルトの場合の日付アーカイブ) if ( is_archive() && ! empty( $m ) ) { $my_year = substr( $m, 0, 4 ); $my_month = substr( $m, 4, 2 ); $my_day = substr( $m, 6, 2 ); $date_title = $my_year . '年' . ( $my_month ? $my_month . '月' : '' ) . ( $my_day ? $my_day . '日' : '' ); } // yearパラメータがある場合 (パーマリンク設定がデフォルト以外の日付アーカイブ) if ( is_archive() && ! empty( $year ) ) { $date_title = $year . '年'; if ( ! empty( $monthnum ) ) { $date_title .= zeroise( $monthnum, 2 ) . '月'; } if ( ! empty( $day ) ) { $date_title .= zeroise( $day, 2 ) . '日'; } } // 日付調整を行ったタイトルがあれば区切り文字を追加(左か右) if ( '' != $date_title ) { if ( 'right' == $seplocation ) { $title = $date_title . " $sep "; } else { $title = " $sep " . $date_title; } } return $title; } add_filter( 'wp_title', 'adjust_date_title', 10, 3 ); |
結果 ( wp_title()
の場合 )
種類 | 変更前 | 変更後 |
---|---|---|
年アーカイブ | » 2015 | » 2015年 |
月アーカイブ | » 2015 » 1月 | » 2015年01月 |
日アーカイブ | » 2015 » 1月 » 01 | » 2015年01月01日 |
結果 ( wp_title( '|', true, 'right' )
の場合 )
種類 | 変更前 | 変更後 |
---|---|---|
年アーカイブ | 2015 | | 2015年 | |
月アーカイブ | 1月 | 2015 | | 2015年01月 | |
日アーカイブ | 01 | 1月 | 2015 | | 2015年01月01日 | |