我正试图做一些真正简单的事情,但不知怎么的,这让我抓狂。我试图让代码片段只在头版上运行。我的网站设置为有一个静态首页,所以我认为我成功的关键是有条件的标签is_front_page(). 然而,我无法让它运行,因为无论我尝试什么,我总是在控制台中出现一条错误消息“ReferenceError: Can’t find variable: is_front_page”.
下面是我的基本代码,我只使用它来测试条件标记是否工作:
<?php
add_action(\'wp\', function(){; ?>
<script>
window.addEventListener("load", function() {
if( is_front_page() ){
console.log("front page")
};
});
</script>
<?php });
我已经花了几个小时浏览互联网,发现条件标记只有在某些元素加载后才起作用,因此我将该函数挂在了“wp”中。此外,我还了解到,通过恢复原始wp\\U查询,解决了一些类似的问题,因此我添加了
<?php wp_reset_query();?>
, 但同样,没有变化。我也尝试过使用is\\u home(),但最终得到了相同的错误消息。此外,我已经禁用了所有插件,没有更改。这真的很奇怪,因为我甚至没有运行is\\u home()和is\\u front\\u page(),所以我想一定有一些相当普遍的问题。
非常感谢您的帮助。祝你复活节快乐,祝你平安!多米尼克
最合适的回答,由SO网友:Abhik 整理而成
您的代码有几个问题。is_front_page()
是一个PHP函数,需要在<?php ?>
.
脚本需要以HTML格式打印才能正常工作。试试这个。。
function wpse_363853_run_on_front() {
?>
<script>
window.addEventListener("load", function() {
<?php if( is_front_page() ){ ?>
console.log("front page");
<?php } ?>
});
</script>
<?php
}
add_action( \'wp_head\', \'wpse_363853_run_on_front\', 99 );
请注意,避免使用匿名函数。