From e0d85b58532a5097cc44dc4b245e5c5bd231f6d8 Mon Sep 17 00:00:00 2001
From: Erick Hitter <services@ethitter.com>
Date: Mon, 22 Feb 2016 13:33:23 -0800
Subject: [PATCH] Improve how component script is included

Props @mjangda for the pointer.
---
 eth-amp-analytics-wp.php | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/eth-amp-analytics-wp.php b/eth-amp-analytics-wp.php
index c55559a..fcaf92c 100644
--- a/eth-amp-analytics-wp.php
+++ b/eth-amp-analytics-wp.php
@@ -97,7 +97,7 @@ class ETH_AMP_Analytics_WP {
 	 */
 	public function action_wp_loaded() {
 		if ( ! empty( $this->get_option( 'property_id' ) ) ) {
-			add_action( 'amp_post_template_head', array( $this, 'action_amp_post_template_head' ), 5 ); // Must appear before the AMP JS library
+			add_filter( 'amp_post_template_data', array( $this, 'filter_amp_post_template_data' ) );
 			add_action( 'amp_post_template_footer', array( $this, 'action_amp_post_template_footer' ) );
 		}
 	}
@@ -107,12 +107,16 @@ class ETH_AMP_Analytics_WP {
 	 */
 
 	/**
-	 * Add component script to header
+	 * Include component script
 	 *
 	 * Must appear before AMP JS library, per https://developers.google.com/analytics/devguides/collection/amp-analytics/
 	 */
-	public function action_amp_post_template_head( $scripts ) {
-		?><script async custom-element="amp-analytics" src="https://cdn.ampproject.org/v0/amp-analytics-0.1.js"></script><?php
+	public function filter_amp_post_template_data( $data ) {
+		if ( ! isset( $data['amp_component_scripts']['amp-analytics'] ) ) {
+			$data['amp_component_scripts']['amp-analytics'] = 'https://cdn.ampproject.org/v0/amp-analytics-0.1.js';
+		}
+
+		return $data;
 	}
 
 	/**
-- 
GitLab