WordPressの予約投稿ができない!失敗時の対処法と予約投稿の手順を解説
WordPressで投稿する際、事前に書きためて指定の日時に公開できると便利ですね。WordPressには初期設定で予約投稿をする機能がついているため、初心者でも簡単に未来の日時を指定できます。本記事では予約投稿をする手順と、予約投稿によくある5つの失敗例について対処法を解説します。
WordPressでサイトを制作したもののトラブル続きで、ちょっと疲れ気味という方は、サポートの充実している事業用WordPressテーマ「WordPress」を試してみませんか。
WordPressで予約投稿(公開日時の指定)をする方法
WordPressで予約投稿する手順は、以下のとおりです。
- 「公開」の右側の「今すぐ」を選択
- 記事を公開する日時を指定
- 予約投稿ボタンで設定を完了
下記で、順番に解説していきます。
1.「公開」の右側の「今すぐ」を選択
記事を書き終わったら同画面のメニューで①「投稿」を選択し、②「公開」の右側にある「今すぐ」をクリックします。
2.記事を公開する日時を指定
カレンダーの日付をクリックするか数値を直接入力し、公開日時を指定します。時刻表記は12時間制なので 「AM」か「PM」のどちらかを選択します。ここでは現在時刻の2日後に設定しました。
3.予約投稿ボタンで設定を完了
公開日時の指定が終わると上部の青いボタンが「公開」から「予約…」に変わるのでクリックします。
つづいて「投稿を予約しますか?」と聞かれるので「予約投稿」をクリックします。
次のように予約投稿された旨が表示されると設定は完了です。指定した日時になっているか確認しましょう。
WordPressの予約投稿ができない!失敗時の対処法
WordPressで記事の公開予約をしていたにも関わらず、予約が失敗してしまう場合があります。ここからは予約投稿の失敗のうち5つのケースについて対処法を解説します。
タイムゾーンがずれている
WordPressにはタイムゾーンという機能があり、日本以外の国や地域でWordPressを運営する際に現地時刻に合わせるために設定します。タイムゾーンの初期設定は「UTC+0」(協定世界時)で日本時間より9時間遅くなっています。
WordPressのタイムゾーンの設定がずれていると、予約投稿に失敗したり意図しない時間に投稿されたりします。
対処法は、まずWordpressの「設定」>「一般」から、タイムゾーンが正しいタイムゾーンになっているか確認します。日本時間にする場合は「東京」か「UTC+9」を選択して「変更を保存」をクリックします。
予約投稿ボタンの押し忘れ
予約投稿するための(手順2)でカレンダーの日時を指定しただけでは、予約投稿は終わっていません。必ず(手順3)へ進み、「公開」に変わって表示される「予約…」ボタンをクリックした後、「予約投稿」ボタンを押して予約投稿を完了させましょう。
予約投稿が完了すると、下記のように青ボタンの表示が「予約投稿」に変わります。
投稿が完了したかどうかはダッシュボードの「投稿」>「投稿一覧」でも確認できます。予約投稿した記事タイトルの右側に「-予約済み」と表示され、「日付」の列でも「予約済み」になっていれば予約手順は完了しています。
キャッシュ系プラグインを使用している
キャッシュ系のプラグインを利用している場合、プラグインが原因で予約投稿が機能しないことがあります。「WP File Cache」や「WP Super Cache」などのキャッシュ系プラグインを有効にしている場合は、一度停止して様子をみましょう。キャッシュをリリースすることにより予約投稿されるかもしれません。
キャッシュ系のプラグインがあやしい場合でもプラグインを無効化したくないケースもあるでしょう。その場合、無効化せずに予約投稿を成功させる方法の一つに「代替Cron」(※)を使う方法があります。
※「代替Cron」とは、一定時間ごとの処理がうまく動作しない時のために用意されたWordPressの仕組みのひとつです。
代替Cronを設定するには、WordPressのディレクトリにアクセスし「wp-config.php」というファイルの中に下記の一行を追加します。
define(‘ALTERNATE_WP_CRON’, true);
注意点としては、この方法はアクセスが発生する度にwp-config.phpが起動されるため、アクセスが多いサイトの場合はサーバーへの負荷が増えてパフォーマンスが低下する可能性あります。
Basic認証を使用している
Basic認証(※)によってアクセス制限された環境でWordPressを運営している場合、予約投稿に失敗することがあります。
Basic認証とはWebサイトにアクセス制限をかける方法のひとつで、ブラウザ上でサイトを訪問した際に、事前に設定したユーザー名とパスワードを入力した場合のみサイトを表示するシステムです。Basic認証を使うことでまだ公開したくないページの閲覧を制限したり、特定の人にだけアクセスを許可したりできます。
Basic認証が原因の場合、.htaccessに「WordPressインストールサーバーのみ制限無しでアクセスできるようにする」という次の記述を書くことで正常に予約投稿できるようになります。
Basic認証を施している.htaccessに下記を追記しましょう。
「allow from XXX.XXX.XXX.XXX」の「XXX.XXX.XXX.XXX」には、WordPressをインストールしているサーバーのIPアドレスを記述します。
# 特定のIPアドレスのアクセスを許可 Satisfy Any order deny,allow deny from all allow from XXX.XXX.XXX.XXX ←ここにサーバのIPアドレスを入力 # Basic認証 AuthType Basic AuthUserFile /var/www/html/.htpasswd ←.htpasswdファイルのパス AuthGroupFile /dev/null AuthName "Secret Area" Require valid-user
アクセスがないため予約投稿ができない
詳しい話は割愛しますが、WordPressの予約投稿は、予約時間以降にアクセスがあると公開される仕組みです。逆に言うと、予約時間以降にアクセスが1件もないと公開されません。このため、アクセスが少ないサイトの場合、予約していた時間よりもかなり時間が経ってから公開される場合があります。
こうした状況だと困るという場合は、プラグイン「Scheduled Post Trigger」を利用するのがいいでしょう。「Scheduled Post Trigger」は予約投稿に失敗した記事がないかをチェックして、自動的に投稿し直してくれるプラグインです。
WordPress.ORGによると2021年3月7日現在、「Scheduled Post Trigger」はプラグインの信頼性を示す更新は4日前と頻度は高く、最新のWP バージョンとの互換性ありで平均評価は4.5となっています。
出典:https://ja.wordpress.org/plugins/scheduled-post-trigger/
特に必要な設定はなく、そのままの状態で動作するため導入しやすい対処法です。ただし約2〜15分毎に投稿をチェックする仕組みのため、最大で15分程、予約で指定した時間と実施の投稿時間にズレが発生します。この差が気になる場合は予約投稿の設定を2〜15分ほど早く設定しておくとよいでしょう。
New Standardではテクニカルサポートをご用意(30日間無料)
株式会社ninoyaの提供する事業用WordPressテーマ「New Standard」を導入すると、30日間無料のテクニカルサポートがついてきます。困ったことや分からないことがあったときに、書籍やインターネットで調べる方が多いと思いますが、けっこう時間が掛かりますよね。実際に試してみても解決しないこともありますし、他の部分がおかしくなってしまうことも……。そうしたことに時間を掛けるよりも、ホームページを充実させることに時間を使ってほしいと思っています。無料期間終了後も、月1,000円で継続してテクニカルサポートを受けられます(年払い)。
今回ご紹介したように予約投稿が上手くいかない場合もご相談OK。WordPressが初めての方でも安心してご利用いただけるようサポートしています。