前言

可以参考本站 PJAX教程

pjax = pushState + ajax

本篇要说的不是ajax,而是pjax,其实从2013年下半年起,wordpress这个圈子就陆陆续续开始出现不少ajax的主题,而大家不太喜欢ajax的原因主要还是因为SEO,ajax本身对于浏览器地址栏的url是没法改变的。对于一个门外汉来说,经过长时间的摸索学习,我还是大致了解了ajax的基本原理,这顺带让我把js、jquery这一块也学了不少,现在看着网络上林林总总的jquery特效插件,随时可以扒到自己的网站上来。

但到目前为止,也没有多少篇比好的教程可以让WP这个圈子的朋友用上ajax,TP圈倒是有不少人开始用pjax了,pjax比ajax多了一个pushState,实际上就是改变浏览器地址,与ajax结合,基本上达到了较和谐的体验浏览方式,而且不会影响seo。下面所要介绍的方法去年就有了,只不过用到wordpress的实例可以说在网上基本找不到,这个pjax是封装好的,也就说直接拿过来就可以用,只需要改一改你网站对应的替换容器即可。


我在自己的INLOU主题上亲测可用,下面是本人全部封装 jqeury_1.11.1 + PJAX + 执行js的一段代码,只需要修改最后的#main为你的替换容器就可以直接使用(由于代码太多,省略掉jquery以及pjax封装部分,可以在下面下载完整js):

/*! jQuery v1.11.1 | 此处省略 */
/*PJAX封装代码 | 此处省略 */
/* 需要自己修改的代码 | 将#main改为你的主体容器id */
$(function() {
$(document).pjax('a[target!=_blank]', '#main', {fragment:'#main', timeout:6000});    
    $(document).on('pjax:send', function() {
      $('#main').fadeTo(700,0.0);
      });
    $(document).on('pjax:complete', function() {
      $('#main').fadeTo(700,1);
      });
});

当然,你也可以下载下来:

PJAX.js下载地址

下载上面的js文件,然后丢到你的主题目录js文件夹,在底部引用即可。
其中pjax是早已封装好的。

参考地址:PJAX封装代码 https://github.com/defunkt/jquery-pjax/

当然,这仅仅是页面的pjax,你需要将它与你的评论ajax、进度条、灯箱、代码高亮等等涉及到js的代码相结合
参考地址:

Willin的ajax评论:http://kan.willin.org/typecho/typecho-ajax-comments.html
NProgress进度条插件:http://ricostacruz.com/nprogress/

目前本人的这个主站早已经是PJAX了,虽然用的不是上面的封装代码,但效果是一样的。妈妈再也不用担心浏览器前进后退的问题了。
2014-10-28_pjax