最近一直被学校校医院网站所困扰 http://xyy.hdu.edu.cn/ 这是一个基于WP二次开发的多站点站群系统(听起来很高大上,只是听起来)。由于这逗比东软公司没有留下任何文档,只是单纯的坑了学校的钱就走人了,而WP已被改得一塌糊涂。举个例子,主题下的function.php 里 大量杂糅html 和Php。然后自以为聪明的又多写了几个类来实现它所谓的强大的功能。具体请见校医院首页的那几个框框,已无力吐槽。。。这些貌似都是废话

进入正题,校医院方面有需求添加文章访问量统计,而熟知WP的都知道WP本身不会带这个功能,一般实现这个功能的是WP-PostViews插件(不错的插件,虽然有点兼容性问题)。不想花费太多时间所以我选择了中文版本WP-PostViews-Plus(这不重要,二者没区别)。但是添加之后调用 the_views() 之后并没有出现我需要的数据阿。然后各种百度各种谷歌,各种分析,想过去数据库看有没有views这个字段,可是拿不到数据库只好作罢。。。。郁闷了半天,决定还是去看插件的代码,不看不知道,一看吓一跳。 postviews_plus.php 中 line52 

add_action('wp_head', 'process_postviews');

当时我就郁闷了。。尼玛为毛是请求了wp_head()的。跑去wp看官方API看wp_head()函数

传送门: http://codex.wordpress.org.cn/Function_Reference/wp_head

<?php 
 ...
    /* Always have wp_head() just before the closing </head>
     * tag of your theme, or you will break many plugins, which
     * generally use this hook to add elements to <head> such
     * as styles, scripts, and meta tags.
     */
    wp_head();
 ?>
 </head>

说的是必须在<head>标签关闭之前引用wp_head()才能生效,然后我打开主题的header.php 。发现不存在这句话,于是果断加上之。华丽丽的在页面上F5.Nice,开始统计了。。刚想高兴一发,又蛋疼了。页面顶部莫名其妙出现了一个空白,审查元素一看,wp_head()函数在首页中添加了这么几句

<style type="text/css" media="screen">
	html { margin-top: 28px !important; }
	* html body { margin-top: 28px !important; }
</style>

当时心中一万只草泥马奔腾而过。这尼玛想过用js消去,也想过去挖wp_head()的原始代码消去这一句。但又一想,AMD规范化后的WP代码要挖原始代码简直是作死。抱着试试看的心态竟然真有解决方法 via http://www.cnblogs.com/wangkongming/archive/2013/09/29/3345468.html

表面上原因是那几行CSS,但是。。解决办法并不是这个。

真正的幕后黑手是没在</body>前加wp_footer().....

在</body>前加上<?php wp_footer();?>,一切搞定!

血和泪的教训,要多看官方API,要多看代码,要多用搜索引擎。多找API,多挖代码,千万不要动用js来Fix的想法,那是个大坑,不要问我为什么!

最后,向看我吐槽到这里的您致敬!

转载保留版权:http://haipz.com/blog/i/3122 - 海胖博客