回答:
多くのWP開発を行う予定がある場合は、このページをブックマークしてください:http : //codex.wordpress.org/Conditional_Tags
他の答えは機能しますが、条件はページスラッグ(myurl.com/this-is-the-slug)に依存します。より信頼性の高い方法(IMO)、およびこの場合に適合する方法は、is_page_template('example-template.php')
代わりに条件付きチェックを使用することです。
is_page( 'landing-page-template-one' )
全体的なエンキューステートメントの一部として、ページ固有のスタイル/スクリプトを囲む条件を使用できます。
function my_enqueue_stuff() {
if ( is_page( 'landing-page-template-one' ) ) {
/** Call landing-page-template-one enqueue */
} else {
/** Call regular enqueue */
}
}
add_action( 'wp_enqueue_scripts', 'my_enqueue_stuff' );
elseif
他のページなどについては、上記にさらにチェーンすることもできます。
リファレンス:関数リファレンス-is_page()
is_page_template()
ページスラッグは簡単に変更できるので、使用することが望ましいと思います。この解決策はうまく機能しますが、スラッグが変更された場合は壊れます。将来問題が発生した場合は、kchjrのソリューションをご覧ください。
is_page
はアクションに付随する関数の中になければならず、add_action
文自体をラップしてはいけません。add_action
ステートメントを条件でラップする場合、ページの処理の早い段階で、それがどのページであるかを知ることになります。
ページテンプレートがテーマのサブディレクトリにある場合(WP 3.4以降)、フォルダー名とスラッシュをテンプレートファイル名の前に追加します。例:
is_page_template( 'templates/about.php' );
したがって、関数全体は次のようになります。
function my_enqueue_stuff() {
if ( is_page_template( 'landing-page-template-one' ) ) {
/** Call landing-page-template-one enqueue */
} else {
/** Call regular enqueue */
}
}
add_action( 'wp_enqueue_scripts', 'my_enqueue_stuff' );
参照:公式ドキュメント
is_page_template ()
チェックはエンキュー関数の内側であり、その周りではないことに言及してくれてありがとう。
他の回答で提供された解決策が機能していたかどうかはわかりませんが、(受け入れられた回答がないので!)正しい答えは現在のようです:
function my_enqueue_stuff() {
if ( get_page_template_slug() == 'landing-page-template-one.php' ) {
wp_enqueue_script('my-script-handle', 'script-path.js', ... );
}
}
add_action( 'wp_enqueue_scripts', 'my_enqueue_stuff' );
is_page_template()は、https: //developer.wordpress.org/reference/functions/is_page_template/によると、ループの外側でのみ機能します。
テンプレート名がテンパーであり、そのページにブートストラップをロードして、次のように特定のページテンプレートのスタイルをキューに登録するとします。
function.phpファイルに移動して、次のような状態を確認します。
function temper_scripts() {
if(basename(get_page_template()) == 'temper.php'){
wp_enqueue_style('bootstrap', '//stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css');
}
}
add_action('wp_enqueue_scripts', 'temper_scripts');