关于wp-postview不计数的解决办法

前言:
应用wordpress架构自己的css急救网-html、css和javascript前端开发技术博客一个多月的时间了,最开始架构的时候随便选了个模版,反正要修改成自己想要的style,如今的博客有2套样式了,一黑一白(把网站源文件中的/wp-content/uploads/gray/theme-gray.css去掉,博客即成黑色了),弄好主题后,我利用minify(见之前我写的文章)对网站的HTML,CSS和JS进行了合并gzip压缩(具体可以查看博客的源文件)。

前 几天我安装了个wp-postview插件,作用是显示文章的浏览次数,但是一直没效果,不计数,后来百度google等各种查找,有人说和wp super cache(一个缓存插件,作用是将PHP解析好,以HTML格式存储在服务器,可以大大的提高用户浏览网站的速度,但是此插件有个弊端,就是更新后必须 得清楚缓存才能看到更新,非常麻烦,具体见我以前的文章。wp super cache介绍以及wp super cache与wp-postview冲突的解决办法)插件有关,想想也对,都缓存了,计数肯定不更新,于是利用百度上的相关文章进行修改,最后还是无济于 事,最后又再次查找,配置文件里开起缓存,我都开了,但是还是不行,计数不准确,有的人说在头部</head>前添加<?php wp_head(); ?>,我加后,惊奇的发现,计数真的有效了,高兴了一阵,然而查看网站源文件,吓我一跳,发现原来我封装压缩好的CSS和JS代码又出现了,源码乱成一团,经多次查找原因,发现是<?php wp_head(); ?>引起的。后来我想wordpress的很多插件都是需要<?php wp_head(); ?>来运行的,为什么我主题里面没有<?php wp_head(); ?>,而其他插件也能运行呢,唯独wp-postview不能,但是插件总要有个函数调用才能执行吧,所以我想肯定是主题中其他的文件集成 了<?php wp_head(); ?>在里面一起执行了,所以在主题head中没有看到<?php wp_head(); ?>,于是我立即查看其他插件的源代码,发现都有add_action(‘wp_head’,'runcode_run’);然后我继续查找,发现 所有的wp_head();方法的执行都集成在了/wp-include/general-template.php中,其里面有个

function wp_head() {
  do_action('wp_head');
}

函数,哦,原来如此,肯定是冲突了,于是我就打开wp-postview插件的wp-postviews.php源文件,将原来的 add_action(‘wp_head’, ‘process_postviews’);修改成add_action(‘wp_head_postview’, ‘process_postviews’);然后在主题的head.php中加上<?php wp_head_postview(); ?>,这样就只执行了wp-postview插件了,其他插件的JS和CSS就不会再次被解析了,然后再在

function wp_head() {
  do_action('wp_head');
}

中加上do_action(‘wp_head_postview’);刷新博客,发现竟然打不开,后来我就新建了个方法,不在里面加do_action(‘wp_head_postview’);了,而是在其后面加上:

function wp_head_postview() {
  do_action('wp_head_postview');
}

重新刷新我的博客,发现神奇的技术有效了,再查看博客的源文件,不错,其他插件和主题多余的CSS和JS没有出现,还是我原来经过gZip压缩的源代码,没有新增任何其他的代码,哈哈,这问题终于解决了,我真是个天才,哈哈(给自己一个鼓励,- -!)

方法总结如下:
第一:将wp-postviews.php中的add_action(‘wp_head’, ‘process_postviews’);修改成add_action(‘wp_head_postview’, ‘process_postviews’);(当然wp_head_postview可以设置成其他的名称,只要保证后面的要和这个一致);
第二:在general-template.php中

function wp_head() {
  do_action('wp_head');
}

的后面加上:

function wp_head_postview() {
  do_action('wp_head_postview');
}

第三:在主题的head.php中头部</head>前添加<?php wp_head_postview(); ?>
OK,大功告成!
PS:我发现很多博客不需要我这样修改,直接安装wp-postview插件,即能计数,发现他们的头部已经有<?php wp_head(); ?>,我的主题没有,所以这个问题应该和主题有关系。
越研究的深,发现要学习的东西越多,革命尚未成功,童鞋仍需努力!!一起共勉吧!!

你可能感兴趣的:(post)