您当前的位置:主页 > 教程合集 > WordPress网站首页WordPress

WordPress文章定时发布失败解决方案

发布时间:2015-10-24编辑:余斗阅读:(0)字号:
    前面,余斗分享了一款WordPress批量定时发布文章插件DX-auto-publish,可以用来安排定时发布文章。但是,使用之后,余斗发现有些时候定时发布不能生效,显示为:
     
    WordPress文章定时发布失败解决方案 有的时候能定时发布,有的时候定时发布失败,余斗查了下,发现这是因为WordPress默认发布文章的时间是0.01秒,一旦超过这个时间而没有发布成功,同理,定时发布文章如果在0.01秒内无响应那么定时发布就会失败。 如何解决Wordpress定时发布失败呢?有三个解决方法: 一、查看是否是时区设置错误 后台-设置-常规,找到时区,将时间格式设置一下,我们国内的时间是UTC+8,余斗选择的是上海,大家根据自己的服务器所在位置调整。 WordPress文章定时发布失败解决方案 如果设置好时间之后也没有效果,则需要接下来的两种方法可以解决。 二、修改 /wp-includes/cron.php 系统文件 打开wp-includes目录下面的cron.php文件,找到“timeout”代码,大概在第293行:
        $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-http.php */
                'sslverify' => apply_filters( 'https_local_ssl_verify', false )
            )
        ) );

        wp_remote_post( $cron_request['url'], $cron_request['args'] );
    }
    将其中的0.01修改为大点的数值,余斗就修改为10.00,大家自行根据情况修改。 WordPress文章定时发布失败解决方案 余斗不是很推荐这种方法,因为WordPress版本更新后,你需要再次修改这个文件,比较麻烦。 三、修改functions.php文件 直接将以下代码添加到 当前使用主题的functions.php 文件的最后面:
    <?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定时发布失败
余斗余斗
  1. 转载请注明:WordPress文章定时发布失败解决方案
  2. 版权声明:本站原创文章,由发表在WordPress分类下,于2015-10-24最后更新
WordPress实现中文用户名解决方案
WordPress如何关闭自动保存文章和修订功能
手机扫一扫 随身带着看
鸿运国际手机登录首页