WordPress:从wp_enqueue_scripts操作调用时,is_page_template无法正常工作

我正在尝试将不同的css文件排入队列,具体取决于我使用的页面模板。 </ p>

从wp_enqueue_scripts动作函数(其中调用所有样式和脚本)调用的函数is_page_template(“index.php”)始终返回false。 我确信我使用的是index.php模板 - 它也被“What the file”插件报告为工作模板。 </ p>

获取有关向html标头添加脚本的页面模板的方法是什么?</ p>

  function the_scripts(){\  n 
if(is_page_template('index.php')){
print“this is index.php”;
} else {
print“failed”;
}
}

wp_enqueue_style( [style_1],[path_1]);
...
wp_enqueue_style([style_n],[path_n]);

}

add_action('wp_enqueue_scripts','the_scripts');
</ 代码> </ pre>
</ div>

展开原文

原文

I am trying to enqueue different css files depending on the page template I use.

The function is_page_template("index.php") called from wp_enqueue_scripts action function (where all styles and scripts are called) always returns false. I am certain that I use index.php template - it is also reported by "What the file" plugin as the working template.

What is the way to get the page template with respect of adding scripts to the html header?

function the_scripts() {

    if( is_page_template('index.php') ) {
        print "this is index.php";
    } else {
        print "failed";
    }
}

    wp_enqueue_style( [style_1], [path_1] );
    ...
    wp_enqueue_style( [style_n], [path_n] );

}

add_action( 'wp_enqueue_scripts', 'the_scripts' );

dousi8237
dousi8237 Pieter是对的:index.php不是页面模板。is_page_template(“page_name”)在the_scripts()中工作得非常好,只要is_page_template()返回true,即页面基于模板时。但这里有诀窍:即使它是基于模板,如果它被指定为Personalization中的主要博客,它将返回false!
大约 5 年之前 回复
douba9776
douba9776 好的问题解决了。
大约 5 年之前 回复
doushui5587
doushui5587 这个资源建议把它放在functions.php中:$template_name=get_post_meta($wp_query->post->ID,'_wp_page_template',true)没有得到模板名称,所以它没有正确运行剩下的函数而没有正确填充这个变量。仍然卡住了。
大约 5 年之前 回复
dongqing7789
dongqing7789 Pieter是对的,但是在模板加载之前仍然存在is_page_template()无法正常工作的问题。因此,如果要检查索引以外的页面,则应使用is_page()。但是如果你真的想使用is_page_template(),这可能与你有关:wordpress.org/support/topic/...
大约 5 年之前 回复
doupang2001
doupang2001 它应该是is_home()。index.php不是页面模板,因此is_page_template()将始终返回false
大约 5 年之前 回复

1个回答

I think ( is_page() && !is_page_template() ) will work in the wp_enqueue_scripts hook to check if the Default Page Template is in use.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问