我有一个网站有一个比较特别的需求,就是,首先我需要对网站前台页面做静态缓存,但又希望侧边栏动态展现一些东西,比如根据用户客户端浏览器的不同,分别展示不同的内容。为了满足这个要求,首先就不能使用百度云加速或者CloudFlare的页面缓存了,因为这些网络加速服务提供的都是全页面缓存。而直接用wp super cache,同样也是全页缓存。好在WP Super Cache提供了一个动态缓存的功能。这个功能不仅需要在WP Super Cache的后台进行相关的设置,还需要对页面进行一点小小的修改。根据插件开发者提供的示例代码,我们需要打开 /wp-content/plugins/wp-super-cache/plugins下的 dynamic-cache-test.php 文件,找到第152行,将
define( 'DYNAMIC_OUTPUT_BUFFER_TAG', '' ); // Change this to a secret placeholder tag.
修改为:
define( 'DYNAMIC_OUTPUT_BUFFER_TAG', 'REDREN SIDEBAR' ); // Change this to a secret placeholder tag.
然后注释掉这一行
echo '<p>This is a test. The current time on the server is: ' . date( 'H:i:s' ) . '</p>';
接着,打开主题文件夹下的sidebar.php,在代码条件判断的
<?php
之前添加如下代码:
if ( function_exists( 'dynamic_output_buffer_test' ) ) dynamic_output_buffer_test(); ?>REDREN SIDEBAR
最后,到后台,打开WP Super Cache设置——高级 里,勾选:启用动态缓存。需要使用PHP或传统模式缓存。请参见 FAQ或wp-super-cache/plugins/dynamic-cache-test.php的示例代码。保存设置即可。
现在,即便开启了WP Super Cache缓存将网站前台页面全部静态化,网站侧栏也可以根据访问者的设备分别输出不同的内容了。