伪更新保持WordPress的更新频率

很多博主都知道定期更新博客的好处,对于一个新站来说,可能很容易因为站长们还有激情,比如已经经营了半年或者更长时间的草根站长来说,可能会是一件不太容易的事情。

我们知道,固定更新有利于百度等搜索引擎的优化,拥有一个自己的博客,并定期的去更新高质量的文章,与蜘蛛每天准时相约,当收录量不断增长的时候,也收录了大量对博客认同的的访问。在这里,耕博分享一个折中的方法,在你不能够去按时发布新文章的时候,让你的Wordpress博客持续保持更新,当然这种更新是属于伪更新,它只是随机把你的发表过的文章显示在首页第一篇而已。

1、打开当前WP主题的function文件,加入如下代码:

function randomtopicfornoupdate($count = 24) { //如果不传递时间参数,默认为24小时
 global $wpdb;
 $last = $wpdb->get_results("SELECT MAX(post_date) AS MAX_m FROM $wpdb->posts WHERE (post_type = 'post' ) AND (post_status = 'publish' )");
 $laststamp = strtotime($last[0]->MAX_m);
 $hours = (time()+3600*8 - $laststamp)/3600;
 if( $hours > $count) { //如果当前时间距离最后一次更新文章的时间已经超过指定的时间,则执行伪更新
 if((time()+3600*8 - get_option("rtfu_time"))/3600 > $count) {
 update_option("rtfu_time",time()+3600*8);
 $rand_query = new WP_Query("showposts=1&orderby=rand");
 if($rand_query->have_posts()){
 while($rand_query->have_posts()){
 $rand_query->the_post();
 global $id;
 update_option("rtfu_postid",$id);
 show_the_index();
 }
 }
 }
 else {
 $rndpostid = get_option("rtfu_postid");
 $rand_query = new WP_Query("p=" .$rndpostid);
 if($rand_query->have_posts()){
 while($rand_query->have_posts()){
 $rand_query->the_post();
 show_the_index(); //调用主题的式样显示随机的这篇文章
 }
 }

 }
 }
}

function show_the_index() {?>
//此处是调用主题首页blog的式样,根据自己的主题调整。基本上是把index.php里的内容搬过来就可以了。
}

2. 接着编辑你的首页index.php文件,查找以下代码:

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

然后大代码之前加入以下代码:

//括号里的单位是小时,即如12小时内没有新文章的话,则执行伪更新随机调用一篇已发布的文章放在首页第一篇文章
if(function_exists('randomtopicfornoupdate')) randomtopicfornoupdate(12);

由于每个主题都不一样,可能以上说过的代码都不在index.php都是找不到的,这里需要对主题有一定了解的朋友自己加以拓展修改。

展开评论