• SEOブログ

    スマホサイトWeb WordPressなどのSEO
    小画面 少コンテンツ 省テキスト 多画像対応の
    コーディング実験検証

  • SEOブログ

【WordPressカスタマイズ】日付アーカイブ タイトル変更や記事件数取得表示

【WordPressカスタマイズ】日付アーカイブ タイトル変更や記事件数取得表示
日付アーカイブも気になるとタイトルに不満、年月日の記事数も表示したい。All in one SEOが書き換えたタイトルをさらに書き換えるなど

WordPressカスタマイズで悩み多き日々

WordPressは便利なホームページ作成支援ツール

テーマによって、レスポンシブにできるから、スマホWeb作りが楽

ところが、ちょっとでも、ここを直したいと思うとき、うまく行かないことが多いから、腹立たしい

日付アーカイブのタイトル(title)の変更

ほとんどニーズがないかもしれないが、日付アーカイブから

日本語の年月日表示にしたい

テーマによって、2020年2月3日と、日付アーカイブのタイトルが表示されることがほとんど

ところが、これを2020年02月03日というように、0埋めしたいのに、どこをいじればいいのか分からない

あるいは、年月日 が付かなかったり、月と年が逆になったり、鬱陶しい

しかも、日付アーカイブのタイトル変更は、検索すればいくらでも情報はあっても、テーマによって、プラグインによって、結果がおかしいときもある

いろいろ漂流して、見つかったのが下記ページ
非常にボリュームが少なく、結果も確実だった

ちなみに、弊社のWordPressサイトでは、問題が起こらないテーマを使っていることが多く、また不都合があればテーマファイルそのものをカスタマイズしているので、
この記事を作成するために、ネタを検索した次第

それを、ほんの少し修正したコード

// 日付アーカイブ title 変更
function jp_date_archive_wp_title( $title ) {
if ( is_date() ) {
$title = '';
if ( $y = intval(get_query_var('year')) )
$title .= sprintf('%4d年', $y);
if ( $m = intval(get_query_var('monthnum')) )
$title .= sprintf('%02d月', $m);
if ( $d = intval(get_query_var('day')) )
$title .= sprintf('%02d日', $d);
$title .= ' | ';
}
return $title;
}
add_filter( 'wp_title', 'jp_date_archive_wp_title', 1 );

「sprintf」はPHPの関数
4桁:%4d
2桁:%2d
2桁0埋め:%02d

上記コードの月と日は、02月や04日と表示される
0埋めしない場合は、%02d を %2d に変更する

このコードで、
日付 | サイト名
がタイトルに表示される

All in One SEOが悪さをしているとき

すぐにはまるのが、title変更なら「All in one SEO」
ところが、このプラグインこそが、日付アーカイブのタイトルをおかしくしているから、たまらない…

検索ワードが悪いのか、やっと見つけたページ

ほとんどそのままのコード

// All In One SEO の日付アーカイブ title変更
add_filter( 'aioseop_title', 'custom_aioseop_title' );
function custom_aioseop_title( $title ) {
if(is_day()){
$title = get_the_date('Y年n月j日') . bloginfo('name');
} elseif(is_month()){
$title = get_the_date('Y年n月') . bloginfo('name');
} elseif(is_year()){
$title = get_the_date('Y年') . bloginfo('name');
}
return $title;
}

タイトルを書き換えたいから、SEOにいいからとAll in one SEOを使っているのに、このプラグインが書き換えたタイトルをまた変更するという…

上記ページの参照元は、次のページとのこと

「aioseop_○○」でフィルターを作ることにより、いろいろできることが分かって嬉しい

日付ごとの個別投稿の件数をカウントして表示

titleではなく、コンテンツ内(body要素の中)に、年月日のそれぞれの個別投稿の件数を表示したいとき

archive.php(またはdate.php)のテーマファイルで、「the_time」を見つけ

<h1><?php the_time('Y年n月j日'); ?></h1>
 ↓
<h1><?php the_time('Y年n月j日'); ?> <?php echo $wp_query->found_posts; ?> 件の記事一覧</h1>

「$wp_query->found_posts」で、年月日の個別投稿件数を取得して、echo で書き出す

「$wp_query->found_posts」は、search.php でも使える

WordPress カスタマイズなら

好評発売中

インスタや今風のECサイトのカード型フィードが、あっという間にできあがり
カテゴリーやタグの関連コンテンツも、お茶の子さいさい
テーマに頼らず、プラグインを使わず、スイスイとWordPressカスタマイズ

«
»