问题①: 在网上找了半天,没找到相关经验教程,只好看下侧边栏丢失页面的源代码,发现原本存在的源码也消失了!
开始 Debug:进入插件设置,把缓存全部清除,然后打开一篇文章,发现跟随模块又回来了!难道缓存的时候不会缓存侧边栏么???
好吧,我继续打开几篇文章,居然发现有的有跟随边栏,有的却没有??这太诡异了吧!~!
在多次查看之后,发现一个规律,我第一时间打开的文章都会正常存在跟随侧栏,而其他文章跟随侧栏却不见了!
于是,立马明白了问题所在:
WP-Super-cache 的预缓存功能会和某些后置加载的动态内容造成冲突!而手动开启页面触发的缓存则不会出现这个问题,因为手动触发的缓存会缓存所有开启的内容,当然也包括了跟随边栏!!!
<1> 简单的解决办法:停用预缓存功能,删除所有已缓存的内容即可。
Ps:简单说就是禁止插件预先缓存所有页面,而是切换到“触发缓存”状态。例如某页面第一次访问后,将自动生成静态页面,而且包含跟随边栏,下次访问将自动调用静态内容。但是,跟随模块内容是固定不变的。
<2> 更好的解决办法:修改侧边栏代码,删除前置判断语句,改为强制执行即可。
具体修改方法:
1、编辑知更鸟主题的侧边栏功能模块 sidebar.php,在代码最后找到下面这段:
<?php wp_reset_query();if (is_single() || is_page() || is_archive() || is_search() || is_404()) { ?> <?php if (function_exists('zg_recently_viewed')): if (isset($_COOKIE["WP-LastViewedPosts"])) { ?> <?php if (get_option('swt_recently') == '关闭') { ?> <?php { echo ''; } ?> <?php } else { include('includes/recently.php'); } ?> <?php } endif; ?> <?php } ?>
然后将段代码如下修改即可解决问题:
<?php wp_reset_query();if (is_single() || is_page() || is_archive() || is_search() || is_404()) { ?> <?php include('includes/recently.php'); ?> <?php } ?>
简单说明:原理就是去掉了第一步的判断,让 wp-super-cache 插件在预缓存时强制执行 recently.php,这样预缓存得到的静态页面也就有了跟随模块了!但是,还是有个问题,知更鸟主题的这个跟随模块是显示访客最近浏览的文章,那都静态化了,还统计毛的最近浏览啊!别人浏览文章的时候,你侧边栏里头的最近浏览一成不变,有点说不过去!
所以,玛思阁直接将最近浏览改成了随机文章了,这样能凑合用用,至于如何修改,就不啰嗦了!
问题②:正常情况下,知更鸟主题有个前台登陆按钮,点击后会弹出鸟哥做的前台登陆框,输入账号密码登陆后,将以登陆身份保留在原来的页面!
而在 Wp-Super-Cache 插件缓存某页面之后,这个前台登陆功能将失效,登陆后返回的页面还是未登录状态,原因也非常简单,因为是静态页面,所以登陆成功后返回的依然是未登录状态的静态页面!(其他主题未研究,可如果是前台登陆框,估计都有会有这个问题。)
<1> 简单解决办法:修改登陆后的跳转链接,登陆成功后跳转到后台管理页面,而不是留在当前页。
具体做法:
编辑知更鸟主题下的 login.php,将
<?php echo $_SERVER[ ‘REQUEST_URI’ ]; ?> 替换成 WP 后台地址,即 http://yousite.com/wp-admin 即可。
现在,静态页面的登陆成功后,将跳转到后台,不能登录的问题得以解决!
虽然,不是很完美,不过一般站点都是站长自己用,我们登陆后一般也是到后台操作,所以这不失为一个简单的解决办法!不过遗憾的是,知更鸟的前台编辑链接按钮就不能用了!因为,未登录状态,这个编辑按钮是不会显示的!有时间我再研究下。
<2> 最佳解决办法:在插件高级选项中,勾选【不要为已知用户缓存。 (推荐)】选项即可搞定!
简单说明:此方法已测试通过,勾选这个功能后,已登录用户将关闭缓存功能,所以可以解决无法登陆的问题,而且知更鸟前台编辑按钮也回来了!
但是也有弊端,主要是使用原生评论框的博客,勾选这个功能后,留过言的博友都将识别为已知用户,和已登录用户一样看到的依然是实时动态页面!但是,使用第三方评论框的博客将没有这个问题,各种利弊请自行取舍。
所以,如果博客采用原生评论框,推荐使用方法<一>,如果是第三方评论框,则可以使用更简单的方法<二>!
当然,如果你不介意对留言用户关闭缓存功能的话,那方法<二>是最好的了!
问题③:页面都静态化了,那文章浏览计数肯定是不会实时显示的啦!
当然,肯定也会有解决办法,通过搜索,发现 JS 版本的 postviews,可以兼容静态缓存插件!
经过测试,网上已有 JS 版本都过旧,没法用,等有时间在来补上可用的 JS 版本。
。。。。
NND,下午就因为弄这个 js 版本 postviews,害的我以前所有的浏览数都给清零了!最后只好拿备份数据来恢复,蛋疼!不弄这个东西了,反正无所谓!
好了,以上就是玛思阁启用 wp-super-cache 插件后发现的问题以及解决办法,希望可以帮到你!