is_front_page()の誤動作?
私はかなり基本的な問題を抱えていますが、WPにはネイティブソリューションがないことに驚いています(何かを見落としているのでない限り)。 static page読書設定でフロントページを設定したWPサイトを持っています。プラグインコードで、WPがフロントページを表示しているかどうかを判断し$classes、そうである場合は配列にクラスを追加しようとしています。私はそれを達成するために次のコードを使用しています add_filter('body_class', function($classes){ if(is_front_page() || is_home()){ $classes[] = 'home-page'; } return $classes; }); 両方is_front_page()を使用していis_home()ますが、フロントページの設定が静的ページからブログレイアウトに将来変更される場合に備えて。 私が遭遇している問題は、このコードがページ上home-pageにbodyもクラスを追加することwp-signup.phpです。 コードを調べると、そのis_front_page()呼び出しが明らかになり、WP_Query::is_front_page()本質的にはの結果が返されますWP_Query::is_page(get_option('page_on_front'))。問題の根本は、なるようにwp-signup.phpページ(ID)としての資格によって返さget_option('page_on_front')(返すID設定でフロントページなどの静的ページセットの>が読み取ります)。 WP_Query::is_page()WP_Query::get_queried_object()内部的にを使用して、現在のページがメソッド引数に存在するページであるかどうかを判断します。でwp-signup.php場合、現在の問い合わせ対象オブジェクトを設定するコードは、次の通りであります /*...other code... */ elseif ( $this->is_singular && ! empty( $this->post ) ) { $this->queried_object = $this->post; $this->queried_object_id = (int) $this->post->ID; } /*...other code... */ これは、何らかの理由でワードプレスがフロントページにクエリを実行し、wp-signup.php次の質問を表示して提起することを示しています。 is_front_page()間違った結果が返されるのはなぜですか? 私の知る限りは、wp-signup.phpWordPressのコードだけで確認することで救済されていない理由を、次に設定Wordpressの管理者を使用して、ホームページとして設定することはできませんPHP_SELFかREQUEST_URI? $this->postこの時点でWP_Queryに現在のホームページがあるのはなぜですか? プラグイン(およびmu-plugins)ディレクトリを削除して、プラグインの問題を除外しました。それはまだwp-signup.php他のどのページにもないフロントページとして認められます。 この問題に関するヘルプは大歓迎です。 アップデート …