LoginSignup
3
3

More than 3 years have passed since last update.

wordpress予約投稿失敗の解決策

Last updated at Posted at 2020-09-23

失敗の原因

WordPressのcronは本来の意味でのcronではなく擬似cronを使用しているからです。
擬似cronは指定の頻度ではなく、ユーザーの訪問にトリガーされ、実行されます。
つまり、ユーザーがサイトにアクセスするたびに、WordPressは、実行する必要のある保留中のcronジョブがあるかどうかを確認し実行します。
basic認証があるとこの擬似cronファイルにアクセスしないので失敗します。
キャッシュ系プラグインはWPファイル読み込まないので実行されないので失敗します。

解決策

そこで主な解決策は下記3つです。

1.プラグインを使用する

一番簡単なやり方です。

上記プラグインどれかを選び ダウンロード→インストール→有効化 で完了です。

2.basic認証を外す又はサーバIPのみ許可してあげる

basic認証があるとwp-cron.phpにアクセス時に認証出来ないので投稿が失敗します。
なので、サーバのIPのみ許可させると直ります。

.htaccess
<Files wp-cron.php>
order deny,allow
deny from all
Allow from xxx.xxx.xxx.xxx #WordPress設置サーバのIP
Satisfy Any
</Files>

3.代替Cronを使う

WordPressには予約投稿がうまく動作しない時のために、「代替Cron」という仕組みが用意されているようです。
ルートディレクトリにある「wp-config.php」に以下の記述を追加するだけで有効になります。

wp-config.php
define('ALTERNATE_WP_CRON', true);

※上記の1.のプラグインと同時に使うと効かない場合があります。

参考サイト

https://oxynotes.com/?p=7309
https://ja.wordpress.org/support/article/editing-wp-config-php/#%e4%bb%a3%e6%9b%bf-cron

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3