WordPressの予約投稿は予約時間を過ぎた後にWordPressにアクセスした際に投稿される。
アクセスが多いサイトならまだしもこのサイトのようにそうそうアクセスが来ない(自虐)ところでは、投稿が大分遅れることは多々あります。
なので、サーバ側で定期的にアクセスをして予約時間になるべく近い時間に投稿できるようにする方法を紹介します。
まずはサイトをアクセスした際の投稿処理を停止します。
以下ファイルを変更します。
wp-config.php
変更前
[CC lang=’php’]
/** データベースの照合順序 (ほとんどの場合変更する必要はありません。) */
define(‘DB_COLLATE’, ”);
[/CC]
変更後
[CC lang=’php’]
/** データベースの照合順序 (ほとんどの場合変更する必要はありません。) */
define(‘DB_COLLATE’, ”);
define(‘DISABLE_WP_CRON’, ‘true’);
[/CC]
cron.php
変更前
[CC lang=’php’]
‘args’ => array(
‘timeout’ => 0.01,
‘blocking’ => false,
/** This filter is documented in wp-includes/class-http.php */
[/CC]
変更後
[CC lang=’php’]
‘args’ => array(
‘timeout’ => 5,
‘blocking’ => false,
/** This filter is documented in wp-includes/class-http.php */
[/CC]
その後cronで以下を指定。
この指定方法を参考サイトで見たやり方でやったらうまくいかなかったのでここは独自に設定
例:5分間隔で実行
[CC]
*/5 * * * * wget -q -O – http://[サイトURL]/wordpress/wp-cron.php?doing_wp_cron
[/CC]
以下を参考にさせていただきました。
WordPress の wp-cron.php を無効にする
WordPressで予約投稿が動作しない時の対処方法