Z-Blog实现文章定时自动发布的方法
因时间不方便,不能定期更新文章。就想着在有时间的时候多写几篇文章,但又不想同一天所有草稿文章都被发布,所以就有了定期发布文章的想法。首选是在后台安装文章自动发布的插件,但找了免费插件,没有合适的,本着白嫖的原则,又不想使用收费的,于是就有了自己写代码实现文章定时自动发布的想法。
首先介绍一下实现文章自动发布的思路:
1、在写文章草稿时就设定文章日期,设定的日期即为文章发布的日期。
2、当系统日期为设定的文章发布日期时,自动发布文章。
3、要想实现文章的自动发布,就需自动发布文章的代码被执行,而执行条件即为所放置代码的页面被浏览。
4、尽量根据自己网站的访问量来选择放置代码的页面:当访问量较少时,可放置有网站首页,或是被调用量较大的head、foot等页面;如果网站访问量较大,则可以放置在搜索页、留言页等页面。注意:代码放置在访问量较少的页面,如果到了文章发布日期,页面访问量为0,则代码不会被执行,即错过文章的发布窗口期。
具体代码如下:
{php} $t_new = date("Y-m-d");// 获取当前日期,为“年-月-日”格式 $sql = $zbp->db->sql->get()->select("zbp_post")->where(array('=', 'log_Status', "1"))->sql;//筛选文章,log_Status=1,是草稿文章;log_Status=2,是审核文章 $array = $zbp->db->Query($sql);//筛选出的文章建立数组 for ($keyt=0;$keyt<count($array);$keyt++){//按条件查找数组中的文章 $t_articles = $array[$keyt]["log_PostTime"];//获取文章时间,为时间戳格式 $t_articles = date("Y-m-d",$t_articles);//将文章时间的时间戳格式转换为“年-月-日”格式 if ($t_articles == $t_new){//判断条件,当前日期等于文章日期 $t_articlesid = $array[$keyt]["log_ID"];//获取符合条件的文章ID $sql = $zbp->db->sql->get()->update('zbp_post')->where('=', 'log_ID', $t_articlesid)->data(array('log_Status' => '0'))->sql;//修改符合条件的文章状态由草稿改为公开 $zbp->db->Query($sql); } } {/php}
将上述代码粘贴到网站主题文件夹下template文件夹中的head或foot页面内即可。