wordpress定时发送失败的原因及四种解决办法

511遇见建站一来,发布文章一直没有规律,都是写完就发,有时候半夜,有时候上午,有时候下午,很多seo都讲到要定时发送,据说上午8点左右发布最有利于蜘蛛规律的爬取,所以打算以后都在这个时间段发布文章,同时把最新的文章规律的发布在自己的网站,利于读者阅读,于是试着定时发送了几篇,全部失败,搜索了一下,总结方法如下

怎样定时发布文章

点击右边->发布板块->立即发布后面的->编辑,然后设置发布的时间,这时发布按钮变成了定时,点击定时,完成定时发布设置!如下图:

定时发布文章失败原因及对策

找到wordpress程序的根目录,找到wp-includes文件夹里的cron.php,将此文件下载到本地,注意备份这个文件后再修改!打开cron.php文件,查找 'timeout' =>

wp4.5.3大约在322行,

$cron_request = apply_filters( 'cron_request',array(

'url' => add_query_arg( 'doing_wp_cron',$doing_wp_cron,site_url( 'wp-cron.php' ) ),

'key' => $doing_wp_cron,

'args' => array(

'timeout' => 0.01,

'blocking' => false,

/** This filter is documented in wp-includes/class-wp-http-streams.php */

'sslverify' => apply_filters( 'https_local_ssl_verify',false )

)

),$doing_wp_cron );

 

wp_remote_post( $cron_request['url'],$cron_request['args'] );

}

WP默认设置发布文章的时间为0.01,当我们定时发布时在这个秒段是无法成功的,所以要失败。

解决方法:

1、把上述值修改为大于0.01的值,比如2.00,3.00,等等

2、安装使用WP Missed Schedule插件,安装即可,不需要设置。

3、调取插件WP Missed Schedule的函数代码,引入添加到 functions.php 的最后面即可

注意!!

通过测试,只有插件或下面的第三种方法成功!

不想安装插件的话,你可以把3中的代码复制到一个php文件里放到主题的根目录下,比如叫 timeout.php,然后在 functions.php这样引入就OK了!

/**

 * 定时发送失败

 */

require get_template_directory() . '/timeout.php';

timeout.php 下载:百度网盘

4、修改数据库里post_status字段来解决wordpress定时发布失败的问题

这个方法需要你对mysql足够的熟悉,那么可以进行这种方法的操作,但如果你是新手的话,我不建议你使用,毕竟造成数据库的丢失,可是大问题!方式就是:到mysql的结构里找到wp_posts表里的post_status字段,将 inherit 修改为publish

直接SQL的写法是:操作慎重!

update wp-posts setpost_status=REPLACE(post_status,’inherit’,'publish’);

重要说明:

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

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

3、如果想要取消定时发布功能,依次点击状态后的【编辑】按钮,选为草稿【保存】。

4、第一种办法在每次更新wp后都要重新设置,第四种风险大,一定要备份数据库!!!如果你的WP使用的插件不太多,建议安装插件WP Missed Schedule。

5、如果你修改了文章内容,直接点击【更新】按钮就可以了,不会影响定时发布的。

相关文章

我想将wordpress的默认接口路由改掉,愿意是默认的带一个 wp...
wordpress自定义分类法之后,我看到链接都自动在后面添加了一...
事情是这样的,我用 get_post_type 函数创建了一个自定义分类...
最近网站莫名其妙的被顶上了,过一个多小时,就注册一个账号...
最近服务器要到期了,就想着把网站转移到另外一台服务器,本...
今天在写wordpress的接口,然后碰到个奇怪的问题,怎么访问都...