私はpage.phpテンプレートが使用されているかどうかを確認しようとしています。 is_page_template( 'page.php' )
を試しましたが、うまくいきません。
page.php
が使用されているときにのみ何かをしたいのであり、他のカスタムPageテンプレートが使用されているときにはしたくないので、is_page()
も使用できません。
これについて教えてください、そしてありがとうございます!
編集: common-options.php
という名前のファイルがほぼすべてのテンプレート(index.php
、page.php
、single.php
、page_blog.php
など)に含まれていることを前述したはずですが、このファイルでは次のコード
if ( is_page_template( 'page.php' ) ) {
echo "success!";
}
しかし、 "Default Template"を使っているページを開いてもうまくいきません。
私は実際に私自身が同じ問題に出くわしました、そして、私の解決策はこのコードでした:
if(basename(get_page_template()) === 'page.php'){
}
basename(get_page_template())
はページテンプレートのファイル名( https://codex.wordpress.org/Function_Reference/get_page_template に従って)を取得し、それが'page.php'
と等しいかどうかを確認します。
is_page()
と is_page_template()
の2つの便利な関数があります。
is_page()
関数は、あなたがページを開いているときにtrue
を返します。現在の投稿(ページにすることができる)がカスタムテンプレートを使用していない場合、is_page_template()
関数はfalse
を返します。
それで、あなたはこれらの機能の両方を一緒に使う必要があるだけです:
if ( is_page() && !is_page_template() ) {
// your code
}
昔の質問ですが、興味深い質問です。
一般に、WordPressで template をチェックすることは珍しいです。テンプレートは result 実行されているメインクエリのもので、リクエストのコンテキストを設定するものです。
必要ならば、どういうわけか私はそれのための私自身のコンテキストを持つためにそれのために定数を宣言するようなpage.php
の始めにフラグを立てるでしょう。
全体として、それは私にそのような動きを必要とするどんな論理でもより一般的な力学と条件式に従って調整されるべきであると考えるべきであると思います。
実はとても簡単です。ただ使用してください:
is_page_template()
もしそれがtrueを返すならpage.phpが使われていない、そしてその逆であるなら:)
$bulkitnt_custom_page_control = is_page_template( 'custom-page.php' );
if( $bulkitnt_custom_page_control != true ){
do_action('bulkitnt_header_action');
}