
それぞれのアーカイブページ(archive.php)や記事ページ(single.php)などの ページタイトル(<title></title>)が好みでないことがままありますし、
テーマによってはページタイトルを見ただけででは何のページかわかりずらいようなタイトルがついている場合があります。
このブログも Theme Junkie. で配布されているテーマを利用させてもらっていますが、アメリカ産だからか、わかりにくいしスタイルも好きじゃない。
ってことで、ページごとに好みのタイトルをつけられるべくテーマファイルを修正しました。
どんなテーマを利用していても修正するファイルは、header.php です。<title></title> の部分がテーマによってどうなっているかそれぞれでしょうが、いずれにしても is_xxx()で、ページ種別を判別できるようなので、<title></title> を条件分岐でわけるだけです。
// トップページ
<?php if( is_home() ) { ?>
<title><?= bloginfo(‘name’); ?></title>
// カテゴリ別アーカイブ
<?php } else if( is_category() ){ ?>
<title>カテゴリ(<?= wp_title(”); ?>)の記事一覧 | <?php bloginfo(‘name’); ?></title>
// タグ別アーカイブ
<?php } else if( is_tag() ){ ?>
<title>タグ(<?= wp_title(”); ?>)が付いている記事一覧 | <?php bloginfo(‘name’); ?></title>
// 月別アーカイブ
<?php } else if( is_month() ){ ?>
<title><?= the_time(‘Y年m月’); ?>の記事一覧 | <?php bloginfo(‘name’); ?></title>
// 投稿者別アーカイブ
<?php } else if( is_author() ){ ?>
<title><?= wp_title(”); ?>が投稿した記事一覧 | <?php bloginfo(‘name’); ?></title>
// その他アーカイブ
<?php } else if( is_archive() ){ ?>
<title>アーカイブ:<?= wp_title(”); ?> | <?php bloginfo(‘name’); ?></title>
// 個別記事
<?php } else { ?>
<title><?= wp_title(”); ?> | <?php bloginfo(‘name’); ?></title>
<?php } ?>
条件分岐する is_xxx() は、条件分岐タグと呼ばれているようで、現在 33種類存在するようです。今回は WEB ページのタイトルを変更するために条件分岐タグを利用しましたが、ページごとに異なる表示をしたい場合などにも条件分岐タグで実現できます。
以下、条件タグの一覧です。
- comments_open
- has_tag
- in_category
- is_404
- is_admin
- is_archive
- is_attachment
- is_author
- is_category
- is_comments_popup
- is_date
- is_day
- is_feed
- is_front_page
- is_home
- is_month
- is_multi_author
- is_multisite
- is_page
- is_page_template
- is_paged
- is_preview
- is_search
- is_single
- is_singular
- is_sticky
- is_super_admin
- is_tag
- is_tax
- is_time
- is_trackback
- is_year
- pings_open
参考URL:条件分岐タグ – WordPress Codex 日本語版
でわでわ。
この場合、titleタグでphpを囲む方が相応しいかと思います。
必要な文字(”の記事一覧 | ” 等)はecho “~~~”で出力し、複数のphpを一つにまとめて記述するのはいかがでしょうか。
zero さん、こんばんわ。
コメントありがとうございます。
そうですね。全体を php で囲っちゃっても良いかも。その方が見やすい人が多いかもしれませんね。
ただ個人的には echo を使うと、(場合によっては)”や’ をエスケープしたりと面倒くさかったり、コードが見にくくなってしまうので、イチイチ個別に php を書いた方が見やすかったりします。(ケースバイケースですけど。)
それとも全体を php で囲った方が速度的に速いとかあるのかな。
また、この記事のソースは、= ?> で出力してますけど、WordPress は、= $hoge ?> じゃなくて と書くべき、というようなことをどこかで見たような・・。