Answers:
如果您打算进行大量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_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 ()
检查应该在enqueue函数内部,而不是在它周围。
我不知道其他答案中提供的解决方案是否正常工作,但是(由于没有可接受的答案!)目前看来正确的答案是:
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' );
根据https://developer.wordpress.org/reference/functions/is_page_template/的描述,is_page_template()仅在循环之外起作用。
假设您的模板名称为Temper,并且您想在该页面上加载引导程序,以便可以在特定页面模板上加入样式,如下所示:
转到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');