wordpressを利用したサイトでは、ほぼ必須になりつつある「All in One SEO」だけど、たまに変なことになりますよね。特に最近困ったのが、カスタム投稿のアーカイブページのページタイトルが正常に表されない件。
他のページのタイトルは「ページ名|サイト名」で正常に表示されているんだけど、カスタム投稿のアーカイブページのタイトルだけ「ページ名|」みたいに、サイト名が表示されない状態に。いまさら、固定ページに変更して…なんてとんでもない!
「All in One SEO」を停止すれば直るんだけど、SEO的に問題になるので、一計を。
まず、こちらでカスタム投稿のアーカイブページかどうかチェックします。チェックしてカスタム投稿のアーカイブページなら、次項の関数で「アーカイブページ名|サイト名」と表示させ、違うなら、通常通りに表示させる。そんな感じにしてみようかなと。
こちらの関数で、カスタム投稿タイプのアーカイブページのタイトルを表示されることができます。
たとえば、以下のような書き方で。
<?php if ( is_post_type_archive() ) : ?>//カスタム投稿アーカイブなら <title><?php post_type_archive_title(); ?> | <?php bloginfo('name'); ?></title> <?php else :?>//ちがうなら <title><?php wp_title( '|', true, 'right' ); ?></title> //ここは通常どおり <?php endif;?>
テーマのheader.phpなど、ページのタイトルを制御する部分に上記を書き換えるだけ。
※もうちょいスマートに書ける気がしているが、今のところこれで。