【问题标题】:I need help to add custom javascript to all website pages except one我需要帮助将自定义 javascript 添加到除一个之外的所有网站页面
【发布时间】:2022-01-07 14:16:56
【问题描述】:

我正在使用下面的代码来完成以下任务:

如果页面 ID 为 22834,则使用“Purchased”跟踪事件加载特定的 facebook 像素脚本,否则(所有其他页面)使用“PageView”跟踪事件加载 facebook 像素脚本。

当前代码:

function wpb_hook_javascript() {
  if (is_page ('22834')) { 
    ?>
        <script>!function(f,b,e,v,n,t,s)
        {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
        n.callMethod.apply(n,arguments):n.queue.push(arguments)};
        if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
        n.queue=[];t=b.createElement(e);t.async=!0;
        t.src=v;s=b.getElementsByTagName(e)[0];
        s.parentNode.insertBefore(t,s)}(window, document,'script',
        'https://connect.facebook.net/en_US/fbevents.js');
        fbq('init', 'XXXXXXXXXX');
        fbq('track', 'Purchase');</script><noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=XXXXXXXXXX&ev=Purchase&noscript=1"></noscript>
    
<?php else ?>

        <script>!function(f,b,e,v,n,t,s)
        {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
        n.callMethod.apply(n,arguments):n.queue.push(arguments)};
        if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
        n.queue=[];t=b.createElement(e);t.async=!0;
        t.src=v;s=b.getElementsByTagName(e)[0];
        s.parentNode.insertBefore(t,s)}(window, document,'script',
        'https://connect.facebook.net/en_US/fbevents.js');
        fbq('init', 'XXXXXXXXXX');
        fbq('track', 'PageView');</script><noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=XXXXXXXXXX&ev=PageView&noscript=1"></noscript>

<?php
  }
}

add_action('wp_head', 'wpb_hook_javascript');

该脚本正在工作并在我的网站中正确应用代码,但在我的functions.php 中使用此代码时,它会显示此错误:

您的网站出现严重错误。请查看您的站点管理员电子邮件收件箱以获取说明。

如果我删除代码,wp-admin 会再次工作!

【问题讨论】:

  • "您的网站出现严重错误。" .请检查您的日志并发布完整的错误消息

标签: javascript wordpress function wordpress-theming


【解决方案1】:
  1. 建议使用wp_enqueue_scripts,而不是使用wp_head钩子输出jscss

  2. 您可能还需要在函数中使用!is_admin() 条件。

  3. 您在 else 语句之前和之后缺少关闭 } 和打开 {

function wpb_hook_javascript(){
    if (!is_admin() && is_page('22834')) {
    ?>
        <script>
            ! function(f, b, e, v, n, t, s) {
                if (f.fbq) return;
                n = f.fbq = function() {
                    n.callMethod ?
                        n.callMethod.apply(n, arguments) : n.queue.push(arguments)
                };
                if (!f._fbq) f._fbq = n;
                n.push = n;
                n.loaded = !0;
                n.version = '2.0';
                n.queue = [];
                t = b.createElement(e);
                t.async = !0;
                t.src = v;
                s = b.getElementsByTagName(e)[0];
                s.parentNode.insertBefore(t, s)
            }(window, document, 'script',
                'https://connect.facebook.net/en_US/fbevents.js');
            fbq('init', 'XXXXXXXXXX');
            fbq('track', 'Purchase');
        </script><noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=XXXXXXXXXX&ev=Purchase&noscript=1"></noscript>

    <?php } else { ?>

        <script>
            ! function(f, b, e, v, n, t, s) {
                if (f.fbq) return;
                n = f.fbq = function() {
                    n.callMethod ?
                        n.callMethod.apply(n, arguments) : n.queue.push(arguments)
                };
                if (!f._fbq) f._fbq = n;
                n.push = n;
                n.loaded = !0;
                n.version = '2.0';
                n.queue = [];
                t = b.createElement(e);
                t.async = !0;
                t.src = v;
                s = b.getElementsByTagName(e)[0];
                s.parentNode.insertBefore(t, s)
            }(window, document, 'script',
                'https://connect.facebook.net/en_US/fbevents.js');
            fbq('init', 'XXXXXXXXXX');
            fbq('track', 'PageView');
        </script><noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=XXXXXXXXXX&ev=PageView&noscript=1"></noscript>

<?php
    }
}

add_action('wp_head', 'wpb_hook_javascript');

【讨论】:

  • 非常感谢您在这个问题上帮助我:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-23
  • 1970-01-01
  • 2018-03-30
  • 2015-02-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-15
相关资源
最近更新 更多