0°

wordpress小工具缓存

1466 个字符,0 张图片,大约需要 2 分钟阅读

WordPress的小工具输出,是WordPress函数dynamic_sidebar进行输出的,而WordPress的缓存函数,需要对一个变量进行赋值,并使用函数缓存:

wp_cache_set(‘缓存的id(识别号)’,’缓存的数据变量’,’缓存的名称’,缓存过期时间)

如果我们直接将dynamic_sidebar赋值给一个变量,是无法赋值的(傻乎乎的试过),所以我们需要php的缓冲区进行赋值。php的缓冲区功能由ob_start()、ob_get_contents()和ob_end_clean()组成

ob_start();//打开一个缓冲区,打开之后下面的输出将会暂缓输出。
dynamic_sidebar('sidebar-widgets')//输出小工具的函数,但在前面打开缓冲区之后,他会暂缓输出
wp_cache_set('sidebars1',ob_get_contents(),'sidebar_content1');//WordPress的内存缓存写入,我们利用函数ob_get_contents()对内存缓存的数据进行赋值,
ob_end_clean();//关闭并清理缓冲区,这时我们的缓存已经写入了,因此关闭缓冲区并清理。

上面的代码完成了将整个小工具进行缓存的实例,这样我们通过使用变量赋值进行输出:

$sidebar_content = wp_cache_get('sidebars','sidebar_content') ;
echo    $sidebar_content ;

来自:https://www.themepark.com.cn/lywordpressdxhccjjs.html

emmmm…..参考我爱水煮鱼大神写的,搞出了以下,也不知行不行=。=

<?php			
global $post;
$related_posts_data = wp_cache_get($post->ID,'related_posts');
if(false === $related_posts_data){
ob_start();
dynamic_sidebar('sidebar-1');
wp_cache_set($post->ID,ob_get_contents(),'related_posts',3600);
ob_end_clean();
$related_posts_data = wp_cache_get($post->ID,'related_posts');
}
echo $related_posts_data;
?>

删除缓存的栗子

function clear_cache(){
    wp_cacache_delete($post->ID,'related_posts');//删除缓存
}
add_action( 'save_post', 'clear_cache' );//创建和编辑文章
add_action( 'deleted_post', 'clear_cache' );//删除文章
add_action( 'created_post_tag', 'clear_cache' );//创建标签
add_action( 'edited_post_tag', 'clear_cache' );//编辑标签
add_action( 'delete_post_tag', 'clear_cache' );//删除标签

除非注明,否则均为喵喵喵博客原创文章,转载请以链接形式标明本文地址

本文链接:https://www.miaomiaomiao.org/586.html

0 条回复 A 作者 M 管理员
    当上帝赐给你荒野时,就意味着,他要你成为高飞的鹰
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论