ウェブサイト検索

WordPress フロントページとホームページ


WordPress は素晴らしい CMS です。やりたいことが何でもできます。ただし、場合によっては、いくつかの基本的な機能で問題が見つかることがあります。たとえば、テーマやプラグインで is_front_pageis_home WordPress ホームページの条件付きを使用している可能性があります (条件付き関数の詳細については、コンディショナル タグの投稿をご覧ください)。しかし、それは間違っています!

ホームページ設定

これらの条件関数を使用すると、ホームページが表示されているかどうか (is_home)、ホームページが静的ページを使用しているかどうか (is_front_page) を確認できます。このような動作は、[設定] => [読み取り] で定義できます。

プラグインまたはテーマでは、この関数を使用して、ユーザー設定に応じてコンテンツを表示または変更できます。しかし、あなたは大きな間違いを犯しています。静的なブログ ページを考慮に入れていないのです。ホームページの静的ページを定義するときに、ブログ ページも定義できます。ブログ ページは、すべての投稿をリストするためにデフォルトの WordPress ホームページを置き換えます。

長い話を簡単に言うと、is_front_page は常に is_home と一緒にテストする前にテストする必要があります。その理由は次のとおりです。

使い方

1.通常の設定:

デフォルトの WordPress ホームページには、最新の投稿がリストされます。

  • URLはこちら:website.com
  • is_home は TRUE を返します
  • is_front_page は TRUE を返します

ここでは、何も問題はありません。

2.静的ホームページ:

ホームページは静的ページの 1 つを使用しています。

  • URLは依然としてwebsite.comです
  • is_home は FALSE を返します
  • is_front_page は TRUE を返します

静的ホームページには問題はありません。is_front_page は true を返します。

3.静的なブログ ページ

あなたのページの 1 つに、すべての投稿がリストされています。

  • URLはwebsite.com/ページ名です。
  • is_home : TRUE
  • is_front_page : FALSE

ここで、いくつかの問題が発生する可能性があります。 is_home は TRUE を返しますが、これはあなたのホームページではありません。メイン カテゴリ アーカイブと同様に、すべての投稿をリストする WordPress ページです。

コンディショナルタグを使用する

プラグインまたはテーマを作成するときは、ユーザーがそれらのページ設定を使用する可能性があることを考慮する必要があります。したがって、is_home を使用するたびに、必ずその前に is_front_page をテストする必要があり、そのためには常に条件パラメータを使用する必要があります。

そうしないと、一部のユーザーと問題が発生する可能性があります。たとえば、ホームページのコンテンツを表示するために is_home のみをテストすると、静的なホームページに問題が発生し、適切なコンテンツが表示されなくなります。

正しく行う方法は次のとおりです。

if ( is_front_page() && is_home() ) {

	// Default homepage ( both the front page and the recent posts page)

} elseif ( is_front_page() ) {

	// Static homepage

} elseif ( is_home() ) {

	// Blog page

} else {

	// Everything else

}

これは、ホームページやブログ ページのコンテンツを表示または変更する唯一の (正しい) 方法です。

重要: これらの機能は、テンプレート ファイルや特定のアクション フックなどで WordPress が読み込まれた場合にのみ機能することに注意してください。これらの条件文を function.php にダンプするだけで機能することを期待することはできません。

あなたはどうですか?

すでにこの問題に遭遇しましたか?あなたの解決策は何でしたか?それについて聞きたいです!