wordpress自动采集发布(纯代码实现wordpress采集到草稿箱的文章每天定时发布)
wordpress纯代码实现wordpress采集到草稿箱的文章每天定时发布,无需安装第三方插件。
定时将草稿箱中的文章改为已经发布的状态,纯代码实现的方法。您也可以通过这种方法实现其他定时任务。
表示有了这个功能,最近又能愉快的偷懒了。
当我们使用采集插件采集到文章以后,并不想让它立刻发布,而是希望它在规定的时间点发布。
这样做经验上来看是有利于SEO的。但是每天都去手动去更新一下文章状态显得太low了。
下面的代码可以帮你实现定时发布的功能:
//定时任务,每天凌晨0点钟
add_action( 'wp', 'zrz_post_schedule' );
function zrz_post_schedule() {
if (!wp_next_scheduled( 'zrz_post_schedule_event' )) {
$date = new DateTime( 'tomorrow', new DateTimeZone('Asia/Shanghai') );
$timestamp = $date->getTimestamp();
wp_schedule_event($timestamp, 'daily', 'zrz_post_schedule_event');
}
}
//修改文章状态动作
add_action( 'zrz_post_schedule_event', 'zrz_post_schedule_do_this_daily' );
function zrz_post_schedule_do_this_daily() {
$args = array(
'orderby' => 'date',//按照时间排序
'order' => 'ASC',//升序排列,ID从小到大
'post_type' => 'post',//文章类型
'post_status' => 'draft',//只检查文章状态是草稿的文章
'posts_per_page' => 10,//要发布的数量
);
$posts = get_posts( $args );
if(count($posts) > 0){
foreach ($posts as $post) {
$my_post = array(
'ID' => $post->ID,
'post_status' => 'publish',
);
wp_update_post( $my_post );
}
}
}
请将上面的代码复制到主题的 functions.php 文件
如果时间不准确,请将下面代码也放入 functions.php 文件,刷一下首页,然后删掉即可。
$times = wp_next_scheduled( 'zrz_post_schedule_event' );
wp_unschedule_event( $times, 'zrz_post_schedule_event' );
$date = new DateTime( 'tomorrow', new DateTimeZone('Asia/Shanghai') );
$timestamp = $date->getTimestamp();
wp_schedule_event($timestamp, 'daily', 'zrz_post_schedule_event');
阅读剩余
THE END