トップページのみ固定ページのタイトルを非表示にする
WordPressで作成するWebサイトのトップページを固定ページにする場合は、作成した固定ページのタイトルを「トップページ」とすることも少なくありません。
この記事ではPHPによる解決策を紹介しますが、CSSによる解決策は以下のページをご覧ください。
トップページのみタイトルを非表示にしたい(CSS)
トップページのみタイトルを非表示にしたい(CSS)
このサイトのトップページを表示すると、固定ページのタイトルが「トップページ」と表示されるので、あまり見た目が良くないかもしれません。
この部分をカスタマイズしたい場合、固定ページのコンテンツテンプレートを編集します。Twenty Twelveでは、content-page.phpです。
固定ページのタイトルは次の部分で出力されています。
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> <header class="entry-header"> <h1 class="entry-title"><?php the_title(); ?></h1> </header>
この部分をカスタマイズすれば、タイトルを柔軟に変更することができます。
トップページのタイトルを非表示にする
単純にトップページのタイトルを消したいだけなら、次のようにif … else … endifという構文で条件分岐を記述します。
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> <header class="entry-header"> <?php if(is_front_page()) : ?> <?php else : ?> <h1 class="entry-title"><?php the_title(); ?></h1> <?php endif ?> </header>
is_front_pageは、トップページ(フロントページ)かどうかを調べる関数です。これにより、フロントページではタイトルが表示されなくなります。
※「!is_front_page()」と記述して「フロントページ以外ではタイトルを表示する」という条件を作成しても問題ありませんが、フロントページとそれ以外で分岐できるように、このような記述にしています。
※トップページ以外ではタイトルが表示されます。
トップページではサイト名を表示する
固定ページのタイトルの代わりにサイト名を表示する場合は、ifの次の行でbloginfo("name")を呼び出します。
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> <header class="entry-header"> <?php if(is_front_page()) : ?> <h1 class="entry-title"><?php bloginfo("name"); ?></h1> <?php else : ?> <h1 class="entry-title"><?php the_title(); ?></h1> <?php endif ?> </header>
これにより、トップページではサイト名、それ以外は固定ページのタイトルが表示されます。
何度もサイト名が表示されるのがうるさく感じるかもしれませんが、カスタムヘッダー画像を使うときには、このカスタマイズが役立つでしょう。