フリーランス|WEB 制作経験丸7年、制作会社様からのご依頼に丁寧・高クオリティでお手伝いいたします。 IRODORI DESIGN

B L O G

【WordPress】予約投稿に失敗する時の原因と解決方法

Basic認証
Scheduled Post Trigger
WordPress
予約投稿

こんにちは、岐阜・名古屋を拠点に全国各地からご依頼いただくWEBサイトを制作しているフリーランスエンジニアの寺井です。

WordPressには予約投稿という仕組みが標準で用意されています。
予約投稿を使うことで自分が寝ている時間や作業出来ない時間にも自動で投稿することが出来ます。
これによりタイミングを逃すことなくアクセス数を増やすきっかけになる可能性があります。
しかし、この予約投稿が失敗してしまうことがあります。
今回の記事では、予約投稿が失敗してしまう原因と解決方法をご紹介したいと思います。

予約投稿に失敗する時の原因

WordPressの予約投稿が失敗する原因は多岐に渡ります。
その中でも代表的な原因をいくかご紹介します。

  • タイムゾーンの設定が間違っている
  • キャッシュ系プラグインが影響している
  • Basic認証を設定している
  • アクセスが少ない

それぞれの原因を詳しく見ていきましょう。

タイムゾーンの設定が間違っている

1つ目の原因は「タイムゾーン」の設定です。

「設定」>「一般」の「タイムゾーン」の設定が「東京」以外が設定されている場合です。
この設定が「東京」以外が設定されていると予約投稿が失敗したり、公開される時間がずれたりする原因になります。

予約投稿に失敗する時は、この「タイムゾーン」の設定を確認してみましょう。

キャッシュ系プラグインが影響している

2つ目の原因は「キャッシュ系プラグイン」を導入している場合です。

この「キャッシュ系プラグイン」の設定が影響していて予約投稿が失敗してしまう原因になります。
予約投稿が失敗する時は、一度「キャッシュ系プラグイン」を無効化してみて予約投稿が正しく動作するか検証してみましょう。

Basic認証を設定している

3つ目の原因は「Basic認証」を設定している場合です。
本公開前の構築時は「Basic認証」を設定した状態というのはよくあります。
この場合は、ほぼ確実に予約投稿は失敗してしまいます。

本公開後に「Basic認証」を解除するのであれば問題ありません。
ただし、本公開後も「Basic認証」を設定したまま運用するWEBサイトの場合は対策が必要です。

.htaccessに下記の記述を追加します。

# 特定のIPアドレスのアクセスを許可
Satisfy Any
order deny,allow
deny from all
allow from ●●●.●●●.●●●.●●●

「allow from ●●●.●●●.●●●.●●●」の「●●●.●●●.●●●.●●●」の部分に、そのWEBサイトをアップしているサーバーのIPアドレスを設定します。

この設定をすることで「Basic認証」を設定したまま、予約投稿が出来るようになります。

アクセスが少ない

4つ目の原因はWEBサイトへのアクセスが少ないことです。
WordPressの予約投稿は「WP-Cron」という機能を利用して動作します。
この「WP-Cron」はWEBサイト(WordPress)にアクセスがあるたびに実行されます。
つまり、WEBサイトにアクセスがあるたびに「WP-Cron」が実行され、投稿時間を過ぎた予約投稿がある場合はその記事が公開されます。
そのためアクセスが少ないWEBサイトの場合は、「WP-Cron」が実行されないため、いつまで経っても予約投稿が公開されないという状態になってしまいます。

予約投稿に失敗する時の解決方法

ここからは予約投稿が失敗する時の解決方法をご紹介します。

  • 代替Cronを使用する
  • プラグインを使用する

それぞれの解決方法を見ていきますよう。

予約投稿が失敗する時、「代替Cron」を使用することで予約投稿が出来るようになります。
「代替Cron」とは、「WP-Cron」で正しく処理されなかった処理を定期的に実行するようにする仕組みです。
WordPressの標準機能の「WP-Cron」が正しく処理しなかったものを「代替Cron」で処理し直すというイメージです。

この「代替Cron」の機能を有効にするためにはwp-config.phpの最後に以下を記述します。

define( 'ALTERNATE_WP_CRON', true );

ただし、この「代替Cron」もWEBサイト(WordPress)にアクセスがあってはじめて処理されるのもなので、アクセスが少ないWEBサイトの場合は解決しません。
また、逆にアクセスが多いWEBサイトの場合は、サーバーへの負荷が増えてしまう恐れがある点も注意する必要があります。

プラグインを使用する

予約投稿が失敗する時、プラグインを使用することで予約投稿が出来るようになります。
予約投稿をサポートするプラグインの中でオススメなのが「Scheduled Post Trigger」です。
このプラグインはインストールして有効化するだけで自動で予約投稿をサポートしてくれます。

プラグインのインストール方法は以下の記事で詳しくご紹介しています。

まとめ

いかがでしたか?
WordPressの予約投稿が失敗してしまう原因は多岐にわたります。
その中でも代表的なものをご紹介しましたが、原因の特定が難しい場合は、「Scheduled Post Trigger」などプラグインを使うことで解決する場合があります。
以上、予約投稿が失敗する原因と解決方法に関する記事でした。