WordPressでページの種類によってタイトルなどを変更する条件分岐方法

ページの種類によってタイトルなどを変更する条件分岐方法

こんにちは、メディア事業部ウェブディレクターのコネル飯塚です。

WordPressで現在のページのタイトルを表示したり、取得するには「wp_title()」というテンプレートタグを使用します。

head内のtitle要素で使用した場合。

<title><?php wp_title(''); ?></title>

上記のような使い方になりますが、SEOを強化するなどの目的からページごとのタイトルに特定の文言を付け加えたい場合があると思います。

タイトルだけなら「All in One SEO Pack」などのプラグインを使うことで自由に変更が可能ですが、その他の場所で自由にカスタマイズ出来るようにするために、まずはページの種類によって条件分岐させてタイトルを変更する方法を説明していきたいと思います。


ページの種類によって条件分岐させる

詳しい条件分岐タグの使用方法は下記を参考にしてください。

便利な条件分岐タグと引数の使い方

タイトルの変更例

それでは、ページの種類によってタイトルを変更してみようと思います。

ページの種類によって下記のようにタイトルが表示されるように設定するとします。

  • トップページ・・・サイト名
  • 固定ページ・・・ページタイトル | サイト名
  • 投稿ページ・・・記事タイトル | サイト名
  • カテゴリーページ・・・「カテゴリー名」の記事一覧 | サイト名
  • 月別ページ・・・「○年○月」の記事一覧 | サイト名
  • 年別ページ・・・「○年」の記事一覧 | サイト名
  • 検索結果ページ・・・検索結果 | サイト名
  • それ以外のページ・・・サイト名

こちらを下記のように「if~elseif~else」を使って、条件分岐タグの中に当てはめていきます。

<title>
<?php if(is_home()): ?>
//トップページのタイトル

<?php elseif(is_page()): ?>
//固定ページのタイトル

<?php elseif(is_single()): ?>
//投稿ページのタイトル

<?php elseif(is_category()): ?>
//カテゴリーページのタイトル

<?php elseif(is_month()): ?>
//月別ページのタイトル

<?php elseif(is_year()): ?>
//年別ページのタイトル

<?php elseif(is_search()): ?>
//検索結果ページのタイトル

<?php else: ?>
//それ以外のページのタイトル

<?php endif; ?>
</title>

タイトルやサイト名を表示させる

実際にタイトルやサイト名が表示されるようにWordPressのテンプレートタグと追加したい文言を入れてみます。

<title>
<?php if(is_home()): ?>
<?php bloginfo(‘name’); ?>

<?php elseif(is_page()): ?>
<?php wp_title(”); ?> | <?php bloginfo(‘name’); ?>

<?php elseif(is_single()): ?>
<?php wp_title(”); ?> | <?php bloginfo(‘name’); ?>

<?php elseif(is_category()): ?>
<?php single_cat_title() ?>の記事一覧 | <?php bloginfo(‘name’); ?>

<?php elseif(is_month()): ?>
<?php the_time("Y年m月") ?>の記事一覧 | <?php bloginfo(‘name’); ?>

<?php elseif(is_year()): ?>
<?php the_time("Y年") ?>の記事一覧 | <?php bloginfo(‘name’); ?>

<?php elseif(is_search()): ?>
検索結果 | <?php bloginfo(‘name’); ?>

<?php else: ?>
<?php bloginfo(‘name’); ?>

<?php endif; ?>
</title>

これで設定した通リのタイトルが表示されるようになります。

それぞれのテンプレートタグの説明

<?php bloginfo(‘name’); ?>

こちらでサイト名を表示させています。

<?php wp_title(”); ?>

こちらで固定ページタイトルと記事ページタイトルを表示させています。
1つ注意点として、()内で引数を指定することができますが、何も入れていない空の場合はタイトルの前に「≫」が表示されます。
「≫」が必要ない場合は「('')」のように何も入れずシングルクォーテーションで括るようにしておきましょう。

<?php single_cat_title() ?>

こちらでカテゴリー名を表示させています。

<?php the_time("Y年m月") ?>

こちらで年月を表示させています。

「(“Y年m月”)」のように引数を設定することで「○年○月」のような表示形式になります。

まとめ ページの種類によっての条件分岐

このようにif文による条件分岐を使ってタイトルをページの種類によって変更させることが出来ます。

タイトルだけではなく、さまざまな所で応用して使うことが出来ると思います。

あなたのサイトのテンプレート階層を考えて自由にカスタマイズしてみてください。


ABOUTこの記事をかいた人

高校の卒業アルバムの「みんな一言」の欄に、安易につまらないことを書き残してしまいました。言葉は本当に難しいです。気を付けます、特にここは真面目な会社なので。