控制 WordPress 文章的发布间隔时间

有时候大家发布文章的时候可能是一有时间就会连着发布好几篇,但每篇文章的发布时间有一定时间间隔或许更适合读者。实现方法很简单,如下:

将代码添加到当前主题的 functions.php 文件中:

//设定每篇文章的发布间隔
function force_time_between_posts($data, $postarr) {
global $wpdb;
if (empty($postarr['ID'])) return $data;
$latest = $wpdb->get_var("
SELECT post_date
FROM {$wpdb->posts} 
WHERE post_status IN('future','publish') 
AND post_type = 'post' 
AND ID != {$postarr['ID']}
ORDER BY post_date DESC
LIMIT 1");
$distance = 60; // 时间间隔(分钟)
$latest = strtotime($latest);
$current = strtotime($data['post_date']);
if ($latest < $current) {
$diff = $current - $latest;
} else { 
$diff = 0;
}
if ($diff >= 0 && $diff < ($distance * 60)) {
$new_date = $latest + ($distance * 60);
$date = date('Y-m-d H:i:s',$new_date);
$date_gmt = get_gmt_from_date($date);
$data['post_date'] = $date;
$data['post_date_gmt'] = $date_gmt;
$data['post_status'] = 'future';
}
return $data;
}
add_action('wp_insert_post_data','force_time_between_posts',1,2);

发布新文章时,会自动检测上一篇文章的发布时间,如果超过60分钟,就直接发布,如果小于60分钟,就自动定时间隔60分钟发布。需要注意的是,所检测的是所有已发布和定时发布的文章中的最后一篇。

猜你喜欢:

点赞
  1. 南瓜IT说道:

    文章多的,这个用得上

  2. 大鸟博客说道:

    还是有点作用的。

  3. 摄影博客说道:

    WORDPRESS不是可以定时发布的么?我以前写了一堆的文章,都是定时发布的。

  4. 定时发布就好了。

  5. 格子老师说道:

    https://manman.qian.lu/1753.html 应该是一样的!

    1. ZAPRO说道:

      @格子老师 :jingku: 撞车了,我嫖来的。偶尔嫖几篇,让分类目录有存在的意义。

      1. 格子老师说道:

        @ZAPRO 我也是 嫖的 为了存档,方便自己查找。

发表评论

电子邮件地址不会被公开。必填项已用 * 标注