テンプレートによって、違うので、要確認ですが、担当したサイトはhome.phpをメインにトップページの表示がされていました。
サイドバーがトップページにて、表示されていたので、これを削除したいと思いました。
<?php if ( !is_home() && !is_front_page() ) : ?>
//ここにホームとフロントページにだけ表示させてくない情報を書く
<?php endif; ?>
PHPが全くわからない方に説明すると、!は否定の意味。 && は、かつという意味で
ホームでないかつフロントページでない場合、表示してくださいという意味になります。
また、//はコメントアウトといって、この行に書くものは、プログラムとしては、認識されません。
WordPressではトップページを表示させるものとして、
- index.php
- home.php
- front-page.php
の三種類があります。
優先順位は下記のようになっています。
front-page.php > home.php > index.php
is_home() はメインブログページが表示されている場合です。
is_front_page() は投稿・固定ページにかかわらず、サイトのフロントページが表示されている場合です。
ただ、最初にお伝えした形で書くことができますが、公式サイトを見ると
if ( is_front_page() && is_home() ) {
// デフォルトホームページ
} elseif ( is_front_page() ) {
// 固定ペーシを使ったホームページ
} elseif ( is_home() ) {
// ブログページ
} else {
// それ以外
}
という、書き方が正しいです。
常に、公式サイトで確認するのがいいと思います。
WordPressはどうしても、PHPを触ったことがない人や知らない人がカスタマイズをするケースも多いので、
適当に書くと失敗する時もあるので、注意です。
WordPressの参考書をみると、endif;で閉じてあるのが多いのですが、
どうも気持ちが悪いです。
コメント