web-dev-qa-db-ja.com

'page.php'が使用されているかどうかをチェックするためのコンディショナルタグ?

私はpage.phpテンプレートが使用されているかどうかを確認しようとしています。 is_page_template( 'page.php' )を試しましたが、うまくいきません。

page.phpが使用されているときにのみ何かをしたいのであり、他のカスタムPageテンプレートが使用されているときにはしたくないので、is_page()も使用できません。

これについて教えてください、そしてありがとうございます!

編集: common-options.phpという名前のファイルがほぼすべてのテンプレート(index.phppage.phpsingle.phppage_blog.phpなど)に含まれていることを前述したはずですが、このファイルでは次のコード

if ( is_page_template( 'page.php' ) ) {
    echo "success!";
}

しかし、 "Default Template"を使っているページを開いてもうまくいきません。

6
user1981248

私は実際に私自身が同じ問題に出くわしました、そして、私の解決策はこのコードでした:

if(basename(get_page_template()) === 'page.php'){

}

basename(get_page_template())はページテンプレートのファイル名( https://codex.wordpress.org/Function_Reference/get_page_template に従って)を取得し、それが'page.php'と等しいかどうかを確認します。

8
intagli

is_page()is_page_template() の2つの便利な関数があります。

is_page()関数は、あなたがページを開いているときにtrueを返します。現在の投稿(ページにすることができる)がカスタムテンプレートを使用していない場合、is_page_template()関数はfalseを返します。

それで、あなたはこれらの機能の両方を一緒に使う必要があるだけです:

if ( is_page() && !is_page_template() ) {
  // your code
}
1
t-jam

昔の質問ですが、興味深い質問です。

一般に、WordPressで template をチェックすることは珍しいです。テンプレートは result 実行されているメインクエリのもので、リクエストのコンテキストを設定するものです。

必要ならば、どういうわけか私はそれのための私自身のコンテキストを持つためにそれのために定数を宣言するようなpage.phpの始めにフラグを立てるでしょう。

全体として、それは私にそのような動きを必要とするどんな論理でもより一般的な力学と条件式に従って調整されるべきであると考えるべきであると思います。

1
Rarst

実はとても簡単です。ただ使用してください:

is_page_template()

もしそれがtrueを返すならpage.phpが使われていない、そしてその逆であるなら:)

0
Assaf Katz
$bulkitnt_custom_page_control = is_page_template( 'custom-page.php' );

    if( $bulkitnt_custom_page_control != true ){
        do_action('bulkitnt_header_action');
    }
0
NineTheme Faruk