WordPress <title>タグをfunctions.phpに1行加えるだけで自動で出力させる
WordPress ではこれまでheadタグ内にHTMLでtitleタグを記入しその中をbloginfo()のWordpress関数を使ってタイトルを表示していますが、Wordpress 4.1 からは、headタグに記入しなくても functions.php に1行加えるだけでtitleタグが挿入されるようになっています
こちらをつかえば、シンプルなコードになります。
これまでのtitleタグとテーマサーポートによるtitleタグ
これまでは以下のようにタイトルタグを生成していました(headタグ内)
<title><?php wp_title( '|', true, 'right' );bloginfo('name'); ?></title>
WordPress 4.1移行で使える方法(functions.php内)
add_theme_support( 'title-tag' );
add_theme_support( ‘title-tag’ ) を使った方法では、タイトルは
- サイト名 – キャッチフレーズ
- ページ名 – サイト名
- カテゴリ名 – サイト名
このような形式で出力されますので、上のこれまで使ってきた方法と同じ表現になる。
add_theme_support( ‘title-tag’ ) でのセパレートの変更
functions.php に短い1行を追加するだけで簡単にheadにtitleタグを出力できるようになるのですが、セパレートの変更を行いたい場合は以下のようになります(Wordpress 4.4以降のみ利用可)
function title_sep( $sep ) { return '|'; } add_filter( 'document_title_separator', 'title_sep' );
セパレートを変更する場合にはこれをfunctions.phpに追加する必要がある、returnのところが区切り文字になる。区切り文字を決めたい場合は、従来の方法の方がシンプルで短いコードとなる。
デフォルトの区切りでよくて、詳細はSEOプラグイン等を使って変更するなどであれば 新たに利用できるようになっているfunctions.phpでの記入が楽。
逆にSEOプラグインも使わなくて、区切りを個別に決めておきたい場合従来の方法がよさ気です。
今後、従来の方法が利用ができなくなるのかはわかりませんが、add_theme_support( ‘title-tag’ )の実行内部ではwp_title()が使われているようなので、wp_title()が廃止とは行かないのではないかと思っています。
COMMENT