35歳で会社を辞めてサイト運営で生計を立てているフリーランスのブログ

現役Webデザイナーがお答えします

トップページとそれ以外(投稿・固定ページ)で表示内容を変更|WordPress

WordPressでサイトのトップページとそれ以外(投稿や固定ページで作成したページ)で、部分的に表示内容を変更する方法を紹介します。

例えば、以下のようなときに便利ですね。

・トップページにはバナーが不要
・サイドバーのデザインを変えたい
・テキストの表示内容を変えたい
・異なる内容の広告を表示させたい

使いどころは多いですよ。

スポンサードリンク

表示内容を変更する3つの方法

このページではそれらを実現するために、

・トップページとそれ以外で表示内容を変更
・トップページにのみ表示
・トップページ以外にのみ表示

の3つの方法をみていきましょう。

トップページとそれ以外で表示内容を変更

テキストやHTMLで表示させる場合は、以下の記述になります。

<?php if ( is_home() || is_front_page() ) { ?>
<p>トップページの内容</p>

<?php } else { ?>
<p>トップページ以外のページの内容</p>
<?php } ?>

WordPressの関数やphpを入れる場合は、以下の記述になります。ちなみに以下は、トップページはsidebar.phpをそれ以外は、sidebar-in.phpを表示させます。

<?php if ( is_home() || is_front_page() ) { 
// トップページの内容
get_sidebar();

} else { 
// ップページ以外のページの内容
get_sidebar( 'in' );
} ?>

ヘッダーやフッターなどでも、表示を切り替えたいときに使えますね。

トップページにのみ表示

トップページにだけに表示させたい内容を指定できます。header.phpなど、全ページ共通にしているファイルで使えますね。

<?php if ( is_home() || is_front_page() ) : ?>
<p>トップページのみに表示させる内容</p>
<?php endif; ?>

トップページ以外にのみ表示

トップページ以外の中面(投稿や固定ページ)にだけ表示させたい内容を指定できます。

<?php if ( !is_home() && !is_front_page() ) : ?>
<p>トップページ以外にのみ表示させる内容</p>
<?php endif; ?>

is_home()とis_front_page()

home.phpやindex.phpをトップページとしているなら、

<?php if(is_home()): ?>

でもOKです。

is_front_page()は、管理画面の設定→表示設定で、フロントページの表示を固定ページにしている場合に必要です。

ここでは、どちらであっても判断できるよう、

<?php if ( is_home() || is_front_page() ) : ?>

としています。