wp_footer();在body之前调用,但W3 Total Cache显示错误

时间:2013-11-28 18:18:21

标签: php wordpress w3-total-cache

我在我的网站上安装了W3 Total Cache插件,最近出现了这个错误:

  

您的活跃主题:

     

·有调用但是在关闭正文标记之前没有直接调用

这是我的footer.php存档的结尾:

<script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXXXXXX-X']);
  _gaq.push(['_trackPageview']);
  (function() {var ga = document.createElement('script'); ga.type = 'text/javascript';      ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' :  'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')     [0]; s.parentNode.insertBefore(ga, s);})();
</script>

 <?php wp_footer(); ?>
 </body>
</html>

正如您所见,wp_footer();位于</body>标记之前。我错过了什么吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

我并不是要干涉“代码马”的答案,但仍然是:

wp_footer()是一个应该在上面的函数,Wordpress codex明确指出“在主题模板中标记之前立即放置此模板标记(例如,footer.php,index.php)”。

以我的拙见,正确的代码将是这一个:

    <?php wp_footer(); ?>
    <script type="text/javascript">
        Here goes your Google analytics code
    </script>

    </body>
</html>

所以,正如你所看到的那样。 “wp_footer”高于你的Ganalytics代码,在这种情况下,什么都不会搞砸了。甚至还有专门用于插入Google分析的小型WP插件,但它适用于懒人,呵呵

答案 1 :(得分:0)

您不应直接在WordPress中调用<script>标记。相反,请使用wp_enqueue_script()

google-analytics.js

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXXXX-X']);
_gaq.push(['_trackPageview']);
(function() {var ga = document.createElement('script'); ga.type = 'text/javascript';      ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' :  'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')     [0]; s.parentNode.insertBefore(ga, s);})();

然后,在您的主题的functions.php文件或插件文件中:

add_action( 'wp_enqueue_scripts', 'so20272587_add_analytics' );
function so20272587_add_analytics() {
    $handle = 'google-analytics';
    $src = 'path/to/google-analytics.js'; // where your JS file lives
    $deps = array(); // add any dependencies' handles in here
    $ver = false; // you can leave this false, or define your own version #
    $in_footer = true; // if you want to load it in the footer
    wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer );
}

然后,您的Google Analytics脚本将作为网站页脚的一部分加载。