Lab.

【備忘録】【wordpress】all in one seo使用時に、カスタム投稿のアーカイブページ(一覧ページ)のタイトルを表示させたい

all in one seoはすげー便利ですが…

wordpressを利用したサイトでは、ほぼ必須になりつつある「All in One SEO」だけど、たまに変なことになりますよね。特に最近困ったのが、カスタム投稿のアーカイブページのページタイトルが正常に表されない件。
他のページのタイトルは「ページ名|サイト名」で正常に表示されているんだけど、カスタム投稿のアーカイブページのタイトルだけ「ページ名|」みたいに、サイト名が表示されない状態に。いまさら、固定ページに変更して…なんてとんでもない!
「All in One SEO」を停止すれば直るんだけど、SEO的に問題になるので、一計を。


カスタム投稿タイプアーカイブページか調べる「is_post_type_archive」

まず、こちらでカスタム投稿のアーカイブページかどうかチェックします。チェックしてカスタム投稿のアーカイブページなら、次項の関数で「アーカイブページ名|サイト名」と表示させ、違うなら、通常通りに表示させる。そんな感じにしてみようかなと。


カスタム投稿タイプアーカイブのタイトルを表示する「post_type_archive_title」

こちらの関数で、カスタム投稿タイプのアーカイブページのタイトルを表示されることができます。
たとえば、以下のような書き方で。


<?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など、ページのタイトルを制御する部分に上記を書き換えるだけ。
※もうちょいスマートに書ける気がしているが、今のところこれで。

related article