基于类别运行脚本

时间:2021-01-13 作者:howtocode

我有一个带有函数的子主题。php,我在标题中运行脚本,但现在我想调整它,使其仅在一个类别下列出的帖子上运行,而避免在主页或其他类别上运行。这是我修改的现有代码,但它正在整个网站上启动脚本。

add_action(\'wp_head\', \'mailchimp_wp_head\');
function mailchimp_wp_head() {
    ?>
        <?php if ( is_category( 93 ) ) :?> 
        <script id="mcjs">!function(c,h,i,m,p){m=c.createElement(h),p=c.getElementsByTagName(h)[0],m.async=1,m.src=i,p.parentNode.insertBefore(m,p)}(document,"script","https://chimpstatic.com/mcjs-connected/js/users/hidden.js");</script>
        <?php endif; ?>
    <?php
}
谢谢!

1 个回复
最合适的回答,由SO网友:Sally CJ 整理而成

仅在上运行posts 列在一个类别下

我强调了这一点;“发布”;因为如果是这样,那么conditional tag 您应该使用isin_category() 而不是is_category() 用于类别存档页(例如。example.com/category/foo) — 例如,is_category( 93 ) 检查当前存档页是否用于类别(ID为)93,而in_category( 93 ) 检查当前职位是否属于93类。

因此,请尝试:

<?php if ( is_single() && in_category( 93 ) ) :?> 
<script id="mcjs">!function(c,h,i,m,p){m=c.createElement(h),p=c.getElementsByTagName(h)[0],m.async=1,m.src=i,p.parentNode.insertBefore(m,p)}(document,"script","https://chimpstatic.com/mcjs-connected/js/users/hidden.js");</script>
<?php endif; ?>

相关推荐

Use Post ID in functions.php

我的functions.php. 它工作得很好:当预订时,它会给我发电子邮件。易于理解的然而,我希望它能给我发送该预订的post ID,而不仅仅是“你好,世界!”消息帮助function add_to_system() { // get post meta // $email = get_post_meta(\'\',$post_id) // $post_id = get_queried_object_id(); mail(\'michael.mc