从特定页面上的<script>加载一行

时间:2018-06-12 23:36:20

标签: javascript php wordpress

我遇到的情况是我只需要在某些页面上加载此脚本中的“Purchase”事件。我将它添加到 header.php 并需要在所有页面上加载FB Pixel,但只在订单确认页面上加载一个事件。如何仅根据URI加载此脚本中的一个链接?

&#xA;&#xA;
 &lt; script&gt;&#xA;&#xA; !function(f,b,e,v,n,t,s){&#xA; if(f.fbq)返回;&#xA; n = f.fbq = function(){&#xA; n.callMethod? n.callMethod.apply(N,参数):n.queue.push(参数)&#XA; }; &#XA;如果(!f._fbq)f._fbq = N; n.push = N; n.loaded = 0;!n.version = '2.0';&#XA; n.queue = []; T = b.createElement(E); t.async!= 0; &#XA; t.src = V; S = b.getElementsByTagName(E)[0]; s.parentNode.insertBefore(t,s)}&#xA; (窗口,文档,'脚本',&#xA;'https://connect.facebook.net/en_US/fbevents.js'); &#XA;&#XA; fbq('init',“xxxxx”); &#XA;&#XA; fbq('track','PageView'); &#XA;&#XA; fbq('track','Purchase',{value:'0.00',货币:'GBP'});&#xA;&#xA;&lt; / script&gt; &#XA;  
&#XA;

1 个答案:

答案 0 :(得分:1)

您不应该在header.php文件中加载脚本,它们应该使用wp_enqueue_scripts挂钩加入functions.php文件中。它会让你的生活更轻松。我还在清理过去将脚本直接加载到页眉和页脚文件中的错误。

首先,您应该保存脚本的第一部分并将其上传到主题的/js文件夹,将其命名为&#34; facebook-tracking.js&#34;

<强> Facebook的tracking.js

!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', "xxxxx"); 

fbq('track', 'PageView');

要正确排队,请在functions.php 添加以下内容(但请等待):

function enqueue_fb_tracking() {
   wp_enqueue_script( 'fb-tracking-js', get_stylesheet_directory_uri() . '/js/facebook-tracking.js', array(), '1.0.0' );
}
add_action( 'wp_enqueue_scripts', 'enqueue_fb_tracking' );

但是您需要在某些页面上扩展脚本。幸运的是WP有一个名为wp_add_inline_script()的函数。所以我们也可以在那里使用is_page()来加味它,只将它加载到你想要的页面上。

function enqueue_fb_tracking() {
    wp_enqueue_script( 'fb-tracking-js', get_stylesheet_directory_uri() . '/js/facebook-tracking.js', array(), '1.0.0' );

    $purchase_pages = array(
        'checkout',
        'some-other-page'
    );

    if( is_page( $purchase_pages ) ){
        wp_add_inline_script( 'fb-tracking-js', "fbq('track', 'Purchase', {value: '0.00', currency: 'GBP'});" );
    }
}
add_action( 'wp_enqueue_scripts', 'enqueue_fb_tracking' );

只需将您想要的页面标题,标题或ID用于跟踪&#34;购买&#34; $purchase_pages数组中的操作。