遇见每一个孩子的成长!

让WordPress每篇文章的发布时间至少间隔1小时

2019年07月26日 17:02更新

广告代码2

作为WordPress多作者博客,也许你会希望发布文章的时间不要凑在一起,有一定的时间间隔可能更适合。比如,让WordPress每篇文章的发布时间至少间隔1小时,就是一个不错的做法。

将下面的代码添加到当前主题的 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分钟,就直接发布,如果小于60分钟,就自动定时间隔60分钟发布。需要注意的是,所检测的是所有已发布和定时发布的文章中的最后一篇。

如果最后定时的那篇文章是第二天早上8点,那你后面写的文章,想定时到第二天早上8点以前都是不允许的,会自动定时为9点。via

测试:输入密码可见(有惊喜,先到先得)


微信扫描二维码,免费获取解码密码

内容分页:1 2 3 4

广告代码2

过往今朝

内容分页:1 2 3 4

http://manman.qian.lu:2080/
姊妹站:格子老师

您还可能喜欢...

43 条评论

  1. 微格说说道:

    老师更新速度能这么快呀,我一般也得一个星期才能写一篇。——Via

    0

  2. cvsdf说道:

    广告内容 已被隐藏!——Via

    0

  3. 森纯博客说道:

    教程不错,学习了——Via

    0

  4. 在线工具说道:

    @格子老师 好的,先收藏一下咯 :smile:——Via

    0

  5. 在线工具说道:

    算法有了,想看看具体怎么实现的 :grin:——Via

    0

  6. Jdeal说道:

    可以的——Via

    0

  7. iherb说道:

    回复看看啊——Via

    0

  8. 西贝博客说道:

    人数多还行,人数少没什么意思啊——Via

    0

  9. 慕仙说道:

    看看大佬。——Via

    0

  10. 小王先森说道:

    这个仿佛没必要吧——Via

    0

  11. repostone说道:

    这个要独立博客才用的。——Via

    0

  12. 老俍说道:

    回复什么呢?——Via

    0

  13. 老俍说道:

    找到完美的分享一下,我也想弄一个~~~——Via

    0

  14. 老俍说道:

    我去,这个回复可见是咋弄的?——Via

    0

发表回复

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