我在我的网站上安装了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>
标记之前。我错过了什么吗?
感谢您的帮助。
答案 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脚本将作为网站页脚的一部分加载。