3

私は誰かが光を当てることができることを望んでいる簡単な問題を抱えています。カスタム ページ テンプレートを含む子テーマがあり、テンプレートが使用されているかどうかを単純に確認しようとしています。通常であればそのまま使っていたのis_page_templateですが、子テーマではうまく動かないようです。私は次のことを試しました

if(is_page_template('template-custom-fullwidth.php')){
    //do something..
}

としても

if(is_page_template(dirname(get_bloginfo('stylesheet_url')).'/template-custom-fullwidth.php'){
    //do something..
}

$_SERVERNeiter は機能し、URL のチェックに使用するよりも洗練されたソリューションがあることを期待していました。これは一般的なタスクのように見えるため、この機能がないことは想像できません。問題は、テンプレートとスタイルシートのディレクトリの違いだと思います。Wordpress を使用して、子テーマにあるページ テンプレートを確認することはできますか?

前もって感謝します!

4

8 に答える 8

3

同様の問題に直面しました。いくつかの試行錯誤の結果、条件が関数内に保持されている場合に機能することがわかりました。しかし、外に置いておくとそうではありません。

function team_page_enqueue_style() {

    if ( is_page_template('page-team.php') ) {
        wp_enqueue_style( 'easy-responsive-tabs-css', get_stylesheet_directory_uri() . '/css/easy-responsive-tabs.css', array(), NULL);
    }
}

add_action( 'wp_enqueue_scripts', 'team_page_enqueue_style' );
于 2014-04-12T03:37:03.610 に答える
1

is_page_template がループ内で使用されている場合はwp_reset_query()、is_page_template への呼び出しの前に配置してみてください。

于 2013-03-29T20:05:26.467 に答える
0

is_singular(); を試してください。私のテンプレートは単一の投稿ページテンプレートであるため、私の場合はうまくいきました。

single-これを使用するには、単語とを除いたテンプレートの名前を指定する必要があります.php。たとえば、テンプレート ファイルが の場合single-forest_of_trees.php、コードは次のようになります。

if (is_singular( 'forest_of_trees' )) {
   // do something
}

また、複数の値をエレガントに処理することもできます。

于 2016-09-14T09:01:48.227 に答える
-1

この WP Codex ページを参照してください: http://codex.wordpress.org/Function_Reference/get_stylesheet_directory_uri

get_stylesheet_directory_uri代わりに使用してください。これはうまくいくはずです:

is_page_template(get_stylesheet_directory_uri() . '/template-custom-fullwidth.php')
{
    //do something..
}
于 2013-03-29T19:07:05.077 に答える