こんにちは、WPホームページ研究所の運営サポートチーム(@WP_LABO)です。
ワードプレスには予約投稿という便利な機能があります。公開日時に未来時刻を指定するとそのタイミングで記事を自動投稿(公開)してくれる機能です。アクセスが少ないサイトでは正しく機能しません。
目次
ワードプレスで「予約投稿の失敗」が表示されて指定時間での公開ができない場合の解決策
結論から言えば立ち上げたばかりのウェブサイトでアクセスが0に近い状態では予約投稿が実質動きません。ワードプレスでは「ユーザーのアクセスを元に特定機能を動かす仕組み」が導入されています。
たとえばワードプレスからメルマガを配信する場合も、未来投稿で記事を自動公開する場合も「ウェブサイトに一定数のユーザーが訪れたことをきっかけ」として配信や公開を実行する仕組みとなります。
そのため公開したばかりのワードプレスサイトでは「予約投稿が動かない」や「メルマガ配信をセットしたのにメールが送られない」といった問題が出てくるわけです。解決策は「強制的に動かす」です。
予約投稿失敗時に表示される内容
予約投稿が失敗すると以下のメッセージが表示されます。
もし時間が過ぎても「予約済み」のままになっていたら管理画面から「更新」を押す必要があります。でもボタンを押せば公開されるとしてもその度いつも押していたら予約投稿の意味がないですよね。
ステータスが「公開済み」になったら公開状態。
上記の通り「予約投稿」が動かなければ手動で公開しなければなりません。ただ、これでは予約投稿の意味がありませんよね。本日は予約投稿を正しく動かすための方法について詳しく解説させていただきます。
まずは予約投稿の失敗でよくある原因と対策についてご紹介いたします。
1. 設定 < 一般からタイムゾーンを東京に変更する
ワードプレスを動かす時間の基準は設定必須です。タイムゾーンの時間を基本にして動くので「予約投稿は動いているけど時間がずれる」という方はタイムゾーンを確認してみましょう。
2. cronの設定を手動で行う
先述の通りワードプレスはウェブサイトへのアクセスを基準に擬似cronが使われます。これらをサーバー側から強制的に実行することで解決するという方法があります。クロンやクーロンと言われています。
残念ながらサーバー側からcronを実行しても確実に動く保証はありません。手順としてもwp-cronを無効化したうえでサーバー上で正しい記述方法でcron実行を行う必要があります。難易度は高めです。正確に言えば無効化しなくてもcron設定はできるのでサーバー上の負荷を考慮して無効化するかどうかを決めましょう。
//wp-config.phpに追記(wp-cronを無効化)
define('DISABLE_WP_CRON', 'true');
ミックスホストの場合はコントロールパネルからcron命令を追加します。以下のようにコントロールパネル側から直接ワードプレスの「wp-cron.php」を実行すればOK。書き方はサーバーによります。
/usr/local/bin/php /home/ユーザーID/public_html/example.com/wp-cron.php
実行するタイミングや実行する間隔は指定可能です。
他のプラグインがどういった擬似cronで動いているのかも把握しておくと安全です。高速化を目的としてキャッシュ系のプラグインを導入していたり、cronの動作に影響を及ぼすプラグインもあります。
3. プラグインから強制実行する
プラグインからcronを無理やり実行するものがあります。予約投稿は「ワードプレスの標準機能」なのでプラグインからcronを強制実行すれば正常通りに予約投稿(未来公開)を動かすことができます。
プラグインを使わなければ、少量のアクセスで予約投稿は動かせず、一定のアクセスが必要になるので「1アクセスでも取りこぼさず確実に動作させてくれるプラグイン」という存在はありがたいですよね。
有名なプラグインとしては「Scheduled Post Trigger」があります。
まとめ
本日は予約投稿が動かない際の解決策についてご紹介いたしました。考えられる理由としてもっとも可能性が高いのは「サイトへのアクセスが少なくて公開処理が実行されず保留になっている」という状況です。
プラグインを使った強制公開がもっともシンプルです。ぜひお試しくださいませ。
余談
プラグインによって追加された機能を動かす場合は?
本記事とは少しずれた内容になりますが「ワードプレスの標準機能とは違う“プラグインで追加した機能”をcronで実行したい場合」はプラグインからcronを強制実行しても動かないことがあるので注意が必要です。
もしリクエストや機会があれば記事にさせていただきますね。
最新式の無料プラグインを事前公開
WordPressは公式サイトに登録済みのプラグインだけで全機能を補足しきれません。当サイトでは使いやすさを追求した魅惑的なプラグインを無料でダウンロードいただけます。運営ホームページのマーケティング力をさらに高めるチャンスです。まずは無料でDLしてお試しくださいませ。
→ 改良されたプラグインを確認する