例如登陆页面1-与博客或首页相比,登陆页面模板-one.php将需要非常不同的样式和js。
#1 楼
如果您打算进行大量WP开发,则应在此页面上添加书签:http://codex.wordpress.org/Conditional_Tags其他答案也可以,但是条件取决于您的页面。 com / this-is-the-slug)永不变。一种更可靠的方法(IMO),并且适合这种情况,将使用
is_page_template('example-template.php')
条件检查。#2 楼
您可以在页面特定样式/脚本周围使用条件is_page( 'landing-page-template-one' )
作为全部入队语句的一部分。其他页面等。参考:函数参考-
elseif
#3 楼
如果页面模板位于主题的子目录中(自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函数内部,而不是在它周围。
– gregn3
19年7月1日在18:48
#4 楼
我不知道其他答案中提供的解决方案是否正常工作,但是(由于没有公认的答案!)目前看来正确的答案是: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()仅在循环之外起作用。
评论
根据提到的文档,它不能在循环内使用
–Selrond
17年2月20日在13:02
在循环之外。那就是我说的... *脸红*
–richplane
17年2月21日在13:58
#5 楼
假设您的模板名称为Temper,并且您希望在该页面上加载引导程序,以便可以在特定页面模板上加入样式,例如: />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');
#6 楼
这一个完美。 function my_enqueue_stuff() {
// "page-templates/about.php" is the path of the template file. If your template file is in Theme's root folder, then use it as "about.php".
if(is_page_template( 'page-templates/about.php' ))
{
wp_enqueue_script( 'lightgallery-js', get_template_directory_uri() . '/js/lightgallery-all.min.js');
wp_enqueue_script('raventours-picturefill', "https://cdn.jsdelivr.net/picturefill/2.3.1/picturefill.min.js", true, null);
}
}
add_action( 'wp_enqueue_scripts', 'my_enqueue_stuff' );
评论
不客气,肖恩,很高兴能为您提供帮助。
–爱德华·凯西
2012年8月15日19:27
我认为使用is_page_template()是更可取的,因为页面标记很容易更改。该解决方案虽然可以正常工作,但如果更改了子弹,它就会中断。如果将来有人遇到问题,请参阅kchjr的解决方案。
– BODA82
2015年11月14日在22:46
谢谢!对于其他偶然发现此问题的人:条件语句is_page必须位于该操作所附的函数中,并且不能包装add_action语句本身。如果确实将add_action语句包装在条件语句中,则将在页面处理的早期就知道它是什么页面。
–亨德卡
16年5月25日,下午3:32