解決WordPress自動排程失敗的三個方法(missed schedule)

WordPress內建的發文自動排程是一個非常方便的功能,一般使用者可能感受不到,但是當你需要出遠門但又不希望網站因此荒廢,應該會寫一些庫存文章,當你出遠門沒時間發表的時候,透過自動排程功能就可以幫你發表了,是不是很方便?但是,這個功能有時候會因為伺服器設定、時區設定造成一些問題,讓你錯失排程。

當排程錯誤時該怎麼解決?一般網路上常見的方法是在wp-config.php裡面加上一串系統全域變數的定義,來解決問題。另外一個方法是修改系統檔案,更改秒數,讓系統可以正確地排程發文。通常,這兩個方法可以解決排程發文問題,如果還是解決不了,沒關係,有第三種方法,透過外掛解決自動排程發文這個問題。

以前,香腸都沒有在使用自動排程發文,我覺得當自己寫完一篇文章,可以親手按下發文的按鈕,並且手動貼到Google PlusFacebook粉絲團Plurk等等的社群上進行分享,是一件很棒的事情,我們可以很即時的與大家做互動,而不是機器自動發文,冷冰冰的感覺,但是現在,可能越來越沒辦法了,當您看到這篇文章,表示香腸已經入伍了。(這篇是排程發表的)

因為這樣的原因,所以開始測試自動排程發文,當然我還是會自己手動貼到社群網站與大家分享。一開始想說自動發文應該不難,畢竟以前也寫過自動排程設定教學,只要把時間設成未來時間、狀態設定為發表,就會自動變成排程文章,不過這次突然出問題了,所以就找到三種解決方法,還好解決問題了。這三個方法也同時提供給需要的朋友們。

解決WordPress自動排程失敗的三個方法(missed schedule)

〈▲當自動排程失敗,文章的狀態會顯示為「錯失排程」。〉

方法一:修改wp-config.php

這個方法是參照獨夜的文章,我們只要將WordPress的系統設定檔案,透過FTP軟體下載回來,並使用NotePad++開啟,將以下語法加入到檔案內,儲存並上傳覆蓋即可解決問題。

/** 解決 WordPress 排程問題  **/
define('ALTERNATE_WP_CRON', true);

解決WordPress自動排程失敗的三個方法(missed schedule)

方法二:修改/wp-includes/cron.php檔案

如果前一個方法不行,您可以改採用此方法。將FTP上的「/wp-includes/cron.php」檔案下載回來,同樣使用NotePad++開啟檔案,約246行,找到其中的:

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

將「timeout」後面的「0.01」改成「20.00」或是其他數字,主要是要讓timeout時間久一點。設定好後,上傳覆蓋即可。

解決WordPress自動排程失敗的三個方法(missed schedule)

方法三:使用外掛修正問題

如果前面兩種方法都還是讓發文章時出現「錯失排程」,那您得考慮透過外掛了。外掛安裝只要在後台搜尋「WP Missed Schedule」或「WP Missed Schedule Fix Future Posts Scheduled Failed」就可以找到此外掛。安裝後,發文應該就可以正常。

如果你發現裝完後,時間到了,文章還沒被發表出去?不妨多等個五分鐘,看看有沒有被發出去?目前香腸是透過外掛解決了自動排程文章,大概看了一下外掛內的寫法,他一樣是定義一個「WPMS_DELAY」的變數,設定為5,接著透過wpdb去撈資料庫看看有沒有沒發表成功的,頻率應該是5分鐘檢查一次。

解決WordPress自動排程失敗的三個方法(missed schedule)