WordPress : サイトの各ページタイトル<title>の表示を最適化
訪問者にサイトの内容を正しく伝えるようにする為に、サイトの各ページタイトル<title>〜</title>にて表示させる項目や順序をプラグインを使用せずに最適化します。
トップページやアーカイブページでページ分割が行われる場合には、タイトルの最後にページ番号を付け加えます。
また、カテゴリーアーカイブで親カテゴリーが存在する子カテゴリーアーカイブのページでは親カテゴリー名も表示させるようにしています。
ページタイトル最適化後の表示
今回紹介する記述を行うと下記のような表示になります。
- ・トップページ
- サイト名 | サイトのサブタイトル(キャッチフレーズ)
- ・トップページ 2ページ目以降
- サイト名 | サイトのサブタイトル(キャッチフレーズ) » Page-ページ番号
- ・個別記事ページ
- 記事名 | サイト名
- ・カテゴリーアーカイブ
- カテゴリー名 | サイト名
- ・カテゴリーアーカイブ(親カテゴリーがある場合)
- 親カテゴリー名 : 子カテゴリー名 | サイト名
- ・カテゴリーアーカイブ 2ページ目以降
- カテゴリー名 | サイト名 » Page-ページ番号
- ・タグアーカイブ
- タグ名 | サイト名
- ・タグアーカイブ 2ページ目以降
- タグ名 | サイト名 » Page-ページ番号
- ・固定ページ
- ページ名 | サイト名
- ・検索結果
- 「○○○」での検索結果 | サイト名
- ・その他のページ(404等)
- 各ページ名 | サイト名
ページタイトル最適化の記述
header.php内にある<title>〜</title>の中に直接記述をすることも出来ますが、記述内容が少々長くごちゃついてしまう為、function.phpにメインの記述を行い、最後にheader.php内でその記述を呼び出します。
function.php
function my_site_title(){
global $page, $paged;
if ( is_home() || is_front_page() ) {
bloginfo( 'name' );
echo ' | ';
bloginfo( 'description' );
} else {
if ( is_category() ) {
$cat = get_queried_object();
if($cat -> parent != 0){
$ancestors = array_reverse(get_ancestors( $cat -> cat_ID, 'category' ));
foreach($ancestors as $ancestor){
echo get_cat_name($ancestor) .' : ';
}
}
echo $cat -> name . ' | ';
} elseif ( is_search() ) {
echo '「'. get_search_query() . '」での検索結果 | ';
} else {
wp_title( '|', true, 'right' );
}
bloginfo( 'name' );
}
if ( $paged >= 2 || $page >= 2 )
echo ' &raquo; ' . sprintf( __( 'Page-%s' ), max( $paged, $page ) );
}
header.phpの<title>〜</title>を以下のように記述
<title><?php my_site_title(); ?></title>
当サイトでも上記と同様の記述を行って表示させていますので、ブラウザの一番上のタイトル表示箇所を見て参考にしてみてください。
以上、「WordPress : サイトの各ページタイトル<title>の表示を最適化」でした。