根据这些评论,我想我可以带你看一下。
如果您想将这样的代码“注入”到主题中,更好的方法之一是Wordpress Action API.
由于您试图在站点上获取的是Javascript,因此我们将挂钩到页脚。假设主题构建正确,将其添加到函数中。php将在所有页面的网站底部添加一些代码:
add_action(\'wp_footer\', function(){
echo "<mark> Hello</mark>";
});
如果我们随后添加您的条件,我们可以使该消息仅显示在您的类别页面上。查看Hello消息是否位于您想要的页面上,而不应位于您不想要的页面上。
add_action(\'wp_footer\', function(){
if (is_category(10) || cat_is_ancestor_of(10, get_query_var(\'cat\')))
echo "<mark> Hello</mark>";
});
如果那不起作用,
is_category()
只是反对
$wp_query
. 所以我们可以回顾
$wp_query
对于您所关注的页面,确保您对正确的内容进行了条件化。访问徽标应该更改的页面,查看
cat
值为:
add_action(\'wp_footer\', function(){
global $wp_query;
echo "<pre>".print_r($wp_query,true)."</pre>";
//if (is_category(10) || cat_is_ancestor_of(10, get_query_var(\'cat\')))
// echo "<mark> Hello</mark>";
});
如果它真的起作用了,或者你解决了它为什么不起作用,我们就会成功。你的条件很好。现在只需添加脚本:
add_action(\'wp_footer\', function(){
if (is_category(10) || cat_is_ancestor_of(10, get_query_var(\'cat\'))) {
?>
<script>
document.getElementsByClassName(\'logo\')[0].src =\'adventurelogo.png\';
</script>
<?php
}
});
如果这不起作用,但Hello消息起作用,那么您的问题是Javascript代码。很可能也是这样,仔细看JS代码,您使用的是徽标作为相对路径,如果您使用命名的永久链接,这将不起作用。您需要一个带有完整图像URL的图像src。假设
adventurelogo.png
是你主题的根源,更像是:
add_action(\'wp_footer\', function(){
if (is_category(10) || cat_is_ancestor_of(10, get_query_var(\'cat\'))) {
?>
<script>
var newLogo = \'<?= get_template_directory_uri() ?>/adventurelogo.png\';
document.getElementsByClassName(\'logo\')[0].src = newLogo
</script>
<?php
}
});