WordPressの投稿記事のステータスが予約済みに反映なかったり、逆に予約済みから公開済みに設定できなかったりする問題の原因と解決方法

Wordpress

サイト移行などに際し、公開済みの過去記事を一括で未来の投稿日に予約投稿する設定にしたい場合があると思います。

通常、Wordpressの記事の投稿日を未来に設定するとステータスは「予約済み」になると考えがちです。

しかし、ツールやプラグインはcsvインポートを使って一括変更(一括更新)を試みると、未来の投稿日を設定してもステータスが「予約済み」にならず「公開済み」になって、実際公開されてしまったりします。

また、手動で未来の投稿日を設定し、ステータスも「予約済み」になっていた記事を、ツールなどで投稿日を過去にしても、スタータスが「予約済み」のままの反映されない場合があります。

これは、「投稿日」と「投稿日のステータス」が別々に管理されているのに、ツールが正しくそれぞれを更新しないためです。

「投稿日」と「投稿日のステータス」が別々に管理されている

投稿日とは、yyyy/mm/dd hh:mm:ss で設定された日時です。

投稿日のステータスは、「公開日」と「公開予定日時」の2種類です。

そして、記事のステータスは、「下書き」、「レビュー待ち」、「公開済み」、「予約済み」の4種類です(厳密には「ゴミ箱」「非公開」などがありますが議論とずれるので割愛)。

ここで重要なのは、単に投稿日を未来の日時にしただけでは、記事のステータスは「予約済み」にはならない、ということです。

投稿日を未来の日時にしただけでは「予約済み」にはならない

記事のステータスが「予約済み」になる条件は、投稿日のステータスが「公開予定日時」の状態で、記事のステータスを「公開済み」に設定(上書き更新を含む)した時だけです。

投稿日が未来の日時であっても、投稿日のステータスが「公開予定日時」でなければ、記事のステータスは何をやっても「予約済み」にはなりません。

ツールやcsvインポートを使うと、投稿日を変えても投稿日のステータスは変えなかったり、投稿日のステータスを変えても記事のステータスを変えないものが多いのです。

主なプラグインの課題を説明していきます。

ツールやcsvインポートを使うと、投稿日を変えても投稿日のステータスは変わらない場合がある

「Really Simple CSV Importer」プラグインの課題

例えば「Really Simple CSV Importer」というプラグインを使うとcsvで一括で既存記事の日時を変更することができますが、このプラグインは投稿日を一括で未来に変えても、投稿日のステータスを変えません。

そのため、投稿日だけ未来になり、投稿日のステータスが「公開日」のままのため、記事のステータスを「公開済み」に上書き設定しても「予約済み」にはなりません。

ちなみに、このプラグインは、記事のステータスを「下書き」や「公開済み」に設定する機能がありますが、これが反映されるのは、新規記事投稿の場合のみで、投稿済み記事のステータスを更新することはできません。

「Lumping-day」プラグインの課題

「Lumping-day」というプラグインは、投稿日を一括変更してくれるプラグインです。

このブラグインは投稿日を一括変更する際、投稿日のステータスも変えてくれます(未来の投稿日を設定すれば、投稿日のステータスを「公開予定日時」に変えてくれます)。

しかし、記事のステータスは変えてくれません。

そのため、投稿日を未来にすると投稿日のステータスは「公開予定日時」になっていますが、記事のステータスは「予約済み」にはならず「公開済み」のままです。

この状態で、改めて記事のステータスを「公開済み」に上書き設定すると、「予約済み」に変わってくれます。

「投稿日」と「投稿日のステータス」と「記事のステータス」を一括で適切に変更する手順

ざっと探した限り、「投稿日」と「投稿日のステータス」と「記事のステータス」を適切に変更してくれる一括変更ツールやプラグインは見つかりませんでした。

そのため、「Really Simple CSV Importer」と「Lumping-day」を組み合わせて設定する手順を行います。

例えば、公開済みの過去記事を一括で未来の投稿日に予約投稿する設定にしたい場合は、以下の手順を踏んでいます。

1.Wordpressの「投稿一覧」から対象の記事を一括で「下書き」に記事のステータスを変更する(「Lumping-day」は下書きの記事だけ投稿日を変更できるため)

2.「Lumping-day」で適当な未来の投稿日を設定する

3.「Really Simple CSV Importer」で正しい投稿日を設定

4.Wordpressの「投稿一覧」から対象の記事を一括で「公開済み」に記事のステータスを変更する

若干手間ではありますが、基本的に一括で作業できるので、記事数が増えても工数の増加は抑えられます。

Wordpress