公告:123目录网为广大站长提供免费收录网站服务,我们将免费进行到底,如需快审服务(10元/站)请联系站长QQ,可自助充值发布。

点击这里在线咨询客服
新站提交
  • 网站:315
  • 待审:0
  • 小程序:12
  • 文章:35791
  • 会员:69

WordPress Related Posts 这个插件已经被下载了2万多次。但是个人对这个插件一直有一个不满意的地方,那就是效率不是很高。我在我的 Bluehost 空间安装这个插件的时候,几次因为这个插件 SLOW SQL 搞的 CPU 超限而被 Suspend 了几分钟,狂晕。

是的,这个插件是使用了一条效率很低的 SQL,因为根据 Tag 来查找相关日至要对所有的 Post 扫一便,看看是不是有相同的 Tag。我想了很久,还是没有想到效率更高的缓存,大学的时候 SQL 还是学得不错,但是现在基本都不懂了,汗!既然没有想到效率更高的 SQL,我想到的第二个方法是缓存,第一个方法是可以使用 WordPress 对象缓存,但是 WordPress 2.5 已经全部采用内存缓存而舍弃了文件缓存,如果主机没有安装内存缓存模块,基本没用,当然也可以是用高级缓存插件,如:WordPress Super Cache。不过我这里使用的是 PostMeta 来缓存。

我们知道,PostMeta 表是用来存储 Post 其他自定义字段,比如你可以在 WordPress 编辑界面自定义字段那里使用它。那么我可以把当前日志的相关日志列表写到 PostMeta 中去,并记录写入的时间。然后再取出,就可以达到加速的效果。具体代码如如下:


<?php
 global $id;

 $output_old = get_post_meta($id, "related_posts", $single = true); // 从 postmeta 表中获取缓存的相关日志

 if($output_old){ //如果返回结果不为空
 $time = time();
 if(($time - $output_old["time"])<600){ //并且在缓存的时间以内(600秒)
  echo $output_old["related_posts"];
 }
 }else{
 $output = wp_get_related_posts() ; //获取相关日志
 
 $output_new = array("time"=>time(),"related_posts"=>$output);
 
 if($output_old){//如果 postmeta 中已有记录,更新
  update_post_meta($id, 'related_posts', $output_new);
 }else{ //否则,新插入
  add_post_meta($id, 'related_posts', $output_new, true);
 }
 echo $output;
 }
?>

当然了,这样缓存也有点不好,就是相关后台配置修改要一段时间才能体现出来。下载:WordPress Related Posts 0.8

标签:wordpress教学

下一篇:【wordpress教学】WordPress Tweaks Plugin

上一篇:【wordpress教学】Image super tools

相关文章

  575

注册时间:

网站:1 个   小程序:3 个  文章:12 篇

  • 315

    网站

  • 12

    小程序

  • 35791

    文章

  • 69

    会员

赶快注册账号,推广您的网站吧!
最新入驻小程序

数独大挑战2018-06-03

数独一种数学游戏,玩家需要根据9

答题星2018-06-03

您可以通过答题星轻松地创建试卷

全阶人生考试2018-06-03

各种考试题,题库,初中,高中,大学四六

运动步数有氧达人2018-06-03

记录运动步数,积累氧气值。还可偷

每日养生app2018-06-03

每日养生,天天健康

体育训练成绩评定2018-06-03

通用课目体育训练成绩评定