当サイトは通販サイト・外部Webサービスへのリンクの一部にアフィリエイト広告を使用しています
WordPressメモ:条件分岐を使って見出し要素を変更する方法
2013年10月1日
WordPressのソースを見直していたら、投稿記事(single.php)のh1要素がブログタイトルのままになっているのに気付いた。ブログのトップページのh1要素をブログタイトルに、ブログ記事を表示するときは記事タイトルがh1要素になるようにする方法のメモ。
指定した条件で任意の処理を行うには”条件分岐”を用いる。条件によって書き換えたいタグ(ここでは見出し要素)の部分で次の様にコードを記入する。
投稿記事のタイトル部分のタグを書き換える
content.php(テーマファイルによる)
<?php if(is_single()): ?> <h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1> <?php else : ?> <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> <?php endif ?>
で投稿記事を表示している場合は投稿記事のタイトルをh1要素で、それ以外の場合(ブログトップ画面、アーカイブ時など)はh2要素で表示する。
ブログタイトルのタグを書き換える
このままではブログトップ画面でブログタイトルも記事タイトルもh1要素になってしまう(HTML5では別におかしいわけではないけれど)のでブログトップ画面ではブログタイトルをh1要素で、投稿記事を表示しているときはp要素で表示する。
header.php(テーマファイルによる)
<?php if(is_home() || is_category()): ?> <h1><a href="<?php echo home_url(); ?>"><?php bloginfo('name'); ?></a></h1> <?php else : ?> <p class="header-title"><a href="<?php echo home_url(); ?>"><?php bloginfo('name'); ?></a></p> <?php endif ?>
でブログトップ画面またはカテゴリ記事一覧画面ではブログタイトルをh1要素で表示する。タグ記事一覧などがあれば|| is_tag()と続ける。条件分岐で使えるis_~という表記の仕方はWordPress Codex日本語にまとめられている。
2ページ目移行を検索エンジンにインデックスさせない
条件分岐タグはもちろん見出しタグの変更以外にも使える。例えばアーカイブの2ページ目移行を検索エンジンにインデックスさせたくない場合、プラグインを使わなくても次のように条件分岐でmeta name=”robots”を挿入すればいい。
header.php
<?php if(is_paged()) { ?> <meta name="robots" content="noindex,follow" /> <?php } ?>