やりたいこと

WordPress のテーマ開発を行っていて、

「トップページの 1 ページ目にだけかっこいいメインビジュアルを表示したい」 というニーズがありました。

1 ページ目だけというのは、ページを贈る度に目に入るとしつこくなってしまうからです。


front-page.php を設置すれば判定する必要もないのですが、メインビジュアルがあるだけで、ほかのコンテンツはリストと同じ場合、ファイルを増やすことによってコストが増えてしまいますね。

ですから私は「トップだけガッツリ構成を変える」ケースではないとフィットしないと考えています。

そこで今回は index.php の中で「トップページかどうか」を判定することで対処することとしました。

1 ページ目の判定

たくさん関数はあるけれど

WordPress に関数が多数用意されており、たとえば「検索結果のページ」とか「記事ページ」などはかんたんに判別することができます。

しかし、「トップページの 1 ページ目」 を判別するのは、ちょっと面倒なのです。


よく使うのは is_home()is_front_page() ですね。

is_home() ブログ投稿インデックスかどうか
is_front_page() サイトフロントページかどうか

この 2 関数は、カテゴリや日付指定無しで 2 ページ目、 3 ページ目を開いたときにもすべて true がかえります。 したがって、「 1 ページ目だけ」の判定をしたいときには使えません。

対応方法

「 1 ページ目だけ」 を調べるには is_paged() を使います。

1if (is_paged() === false) {
2    // 1ページ目
3} else {
4    // 2ページ目以降
5}

これで 「トップページの 1 ページ目」 を判別できました。
あとは if ブロックの中にコンテンツを埋め込んでいけば OK です。

対処方法がわかればカンタンですね。

エンジニアのためのWordPress開発入門 (Engineer's Library)

野島 祐慈,菱川 拓郎,杉田 知至,細谷 崇,枢木 くっくる
出版社:技術評論社  発売日:2017-01-26

Amazonで詳細を見る

WordPress の開発をしたいという方は、WordPress コースのあるオンラインの学習サービスを有効活用すると近道ができそうです。