性价比最高的香港ASP、PHP主机提供商
做网站,就上凡科建站

WordPress定时发布文章/解决定时发布失效

Loading
0
阿里云代金券1000元礼包免费抢

WordPress的定时发布文章的功能是十分有用的,也许你还没有发现,和倡萌一起来认识一下吧。

为什么要定时发布文章?

定时按量发布文章,对于用户体验和SEO都有比较大的好处。不少朋友写博客都是不太有规律的,有兴致的时候,一连发好几篇文章,没兴致的时候,N旧也不发一篇。你换位思考一下,如果你喜欢并订阅了某个博客,但是对方发文章很没有规律,你会不会比较反感?

通常建议的方法是:按时按量发布文章。比如你一个月大概写10篇文章,那就尽量3天发布一篇,而且定在当天的固定时段,比如,倡萌一般固定在早上6-7点间。这样一来,不仅访客比较容易找到你的规律,就连搜索引擎的蜘蛛也一样会比较按规律办事的。

如何定时发布文章?

在发布文章的界面右边的【发布】选项,点击一下[立即发布]右边的“编辑”,就会出现下图所示的界面,可以选择发布日期和时间,设定后,确定即可:

wpdaxue.com-201211137

如果你使用Windows Live Writer发布文章,只需要勾选日期,然后修改时间即可:

wpdaxue.com-201211138

注意:

1、如果你的服务器是在国外,要先在“设置”-“常规”中将时间格式设置一下,我们国内的时间是UTC+8。

2、时间是按服务器的时间来算的,不是本地电脑时间,所以有可能会有几分钟误差。最好先测试一下几分钟后的定时,看着它定时发布/更新一篇文章。

3、如果想要取消定时发布功能,点击第一行的状态:草稿,选择编辑然后更改为草稿,再点击更新文章就OK啦。

定时发布失效怎么办?

WordPress默认发布文章的时间是0.01秒,一旦超过这个时间而没有发布成功,定时发布文章就会失败。如何解决Wordpress定时发布失败呢?下面有两种方法。

方法一:修改 /wp-includes/cron.php 系统文件

打开wp-includes目录下面的cron.php文件,找到“timeout”代码:

1
wp_remote_post( $cron_url, array( 'timeout' => 0.01, 'blocking' => false, 'sslverify' => apply_filters( 'https_local_ssl_verify', true ) ) );

将代码后面的数值0.01修改为比0.01大就可以了,也可以修改为10.00。

倡萌不是很推荐这种方法,因为WordPress版本更新后,你需要再次修改这个文件。

方法二:使用WP Missed Schedule插件

下载 WP Missed Schedule ,安装启用即可;如果你不想安装插件,也可以直接将该插件的代码添加到 functions.php 的最后面即可:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
if(!function_exists('add_action')){
	header('Status 403 Forbidden');header('HTTP/1.0 403 Forbidden');header('HTTP/1.1 403 Forbidden');exit();}
?>
<?php
 function wpms_log(){
	 echo"\n<!--Plugin WP Missed Schedule 2011.0920.2011 Active-->";
	 }
	 add_action('wp_head','wpms_log');
	 add_action('wp_footer','wpms_log')
?>
<?php
define('WPMS_DELAY',5);
define('WPMS_OPTION','wp_missed_schedule');
function wpms_replace(){
	delete_option(WPMS_OPTION);
	}
	register_deactivation_hook(__FILE__,'wpms_replace');
	function wpms_init(){
		remove_action('publish_future_post','check_and_publish_future_post');
		$last=get_option(WPMS_OPTION,false);
		if(($last!==false)&&($last>(time()-(WPMS_DELAY*60))))return;
		update_option(WPMS_OPTION,time());
		global$wpdb;
		$scheduledIDs=$wpdb->get_col("SELECT`ID`FROM`{$wpdb->posts}`"."WHERE("."((`post_date`>0)&&(`post_date`<=CURRENT_TIMESTAMP()))OR"."((`post_date_gmt`>0)&&(`post_date_gmt`<=UTC_TIMESTAMP()))".")AND`post_status`='future'LIMIT 0,5");
		if(!count($scheduledIDs))return;
		foreach($scheduledIDs as$scheduledID){if(!$scheduledID)continue;
		wp_publish_post($scheduledID);}
		}
	add_action('init','wpms_init',0)
?>

好了,从现在开始,规律更新你的博客吧!

支付宝扫码打赏 微信打赏

如果本文对你有帮助,请打赏作者,鼓励我们继续写作!

WordPress快站:让WordPress建站更简单

关于 倡萌

一个疯狂的 WordPress 爱好者,喜欢折腾 WordPress 主题,分享 WordPress 资源。如果你也喜欢 WordPress,欢迎和我一起交流!

精彩推荐

通过 functions.php 文件删除 WordPress 的文章版本

通过 functions.php 文件删除 WordPress 的文章版本

WordPress连接到百度网盘 WP2PCS(网站备份和文件外链)

WordPress连接到百度网盘 WP2PCS(网站备份和文件外链)

17 条评论

  1. 哈哈 跟楼主想得一样,我的米扑博客用的就是WP Missed Schedule 插件定时发布,成功率100%
    谁要 WP Missed Schedule 插件 可以去我的米扑博客搜索,有打好包的插件下载

  2. dear倡萌,我的后台时间设置没有问题,也按你说的修改了FUNCTION.PHP,但还是定时发布失败,注意不是偶尔失败一两遍,是每次全部挂掉!WHY :cry: :cry:

发表评论