阿久梨絵です!
WordPress の予約投稿が失敗すると、本当に困りますよね。私も最近、この問題に直面しました。そこで、色々試行錯誤して、ついに解決策を見つけたので記事にします!
問題の発端
今までは、予約投稿で問題なく記事が投稿されていました。しかし、ここ数週間、予約投稿が予定通りに行われない状況が続きました。プラグインやテーマは最新バージョンに更新しているのに、なぜかうまくいかない…。
テーマを変更したからなのか??? テーマの開発元にメールを送ると、以下の設定を wp-config.php ファイルに追加するよう回答がありました。
define(‘DISABLE_WP_CRON’, true);
define(‘ALTERNATE_WP_CRON’, true);
設定変更後(FTP)して、サイトを起動すると、びっくり。画面が表示されません。エラーが表示されるのでなく、画面が崩れるわけでなく、「無」の状態。この2行がサイトの立ち上がりを阻害してしまったんです。
設定の見直し
再度調査を実施し、まずは無効にした設定を元に戻しました。 wp-config.php ファイルの2行は、矛盾するため1行だけ以下の修正を入れています。
define(‘DISABLE_WP_CRON’, false);
テスト環境での調査はOKだったので、本番環境で入れ替えてみると、まだ予約投稿が失敗することがありました。
環境類のプラグイン、プラグインの最新化、テーマの最新化を行いましたが、原因がわかりません。そこで、 wp-config.php ファイルを変更してデバッグモードを有効にして詳細なエラーログを確認することにしました。
define(‘WP_DEBUG’, true);
define(‘WP_DEBUG_LOG’, true);
define(‘WP_DEBUG_DISPLAY’, false);
該当時刻のエラーログを確認したところ、次のようなエラーが表示されました。
Creation of dynamic property ps_auto_sitemap::$wp_version is deprecated in /home/********/wp-content/plugins/ps-auto-sitemap/ps_auto_sitemap.php on line 34
プラグイン ps-auto-sitemap が怪しいと判明!
問題のプラグインを無効化することで、予約投稿が正常に機能するようになりました。影響としては、sitemap表示のための機能が一旦表示できない状況になりますが、予約投稿が優先です。
代替プラグインとしては、以下のものがあるようです。
・Yoast SEO: サイトマップの生成をはじめ、SEO全般に対応。
・Google XML Sitemaps: 検索エンジン最適化のために特化したサイトマップ生成プラグイン。
・All in One SEO Pack: 多機能なSEOプラグインで、サイトマップ生成も含まれます。
追加の作業
この作業を実施して、本番環境でセットしてみると、うまくいったりいかなかったりの状態です。これは昨日以前も2回に1回は成功、1回は失敗という5割の確率でした。
再度、本番環境でテストを実施した結果、記事投稿(予約セット)後、キャッシュクリアが必要でした。(弊社環境では、、、)
・wp-config.php ファイルに define(‘WP_DEBUG_DISPLAY’, false); の追加
・プラグイン系のキャッシュクリア
・CDNのキャッシュクリア
デバッグのログをみると、contents/function.phpで秒単位でエラーが出ていました。WordPress本体のシステムでのエラーと思われます。以下の「誤って」が異なるパターンになっています。
関数 _load_textdomain_just_in_time が<strong>誤って</strong>呼び出されました。<code>astra</code> ドメインの翻訳の読み込みが早すぎました。これは通常、プラグインまたはテーマの一部のコードが早すぎるタイミングで実行されていることを示しています。翻訳は <code>init</code> アクション以降で読み込む必要があります。
このphpファイルの 共通で6114行目に何か問題があるようです。
wp-includes/functions.php on line 6114
WordPress バージョン6.7のアップデートが関与しているのかもしれません。
まとめ
WordPress の予約投稿がうまくいかない場合、プラグインの競合が原因であることがあります。「ps-auto-sitemap」のようなプラグインと予約投稿の関連性がわからないため、調査が難航しましたが、なんとか原因が判明しました。
特に「ps-auto-sitemap」のようなプラグインが問題を引き起こしている場合、無効化して代替プラグインを使用することで解決できることがあります。これを機に、他のプラグインも見直してみるのも良いかもしれません。
この記事が、同じような問題に悩む皆さんの参考になれば幸いです!
阿久梨絵でした!
―――
2024.12.2追記
予約投稿の対処をしましたが、標準機能の対処では限界があるかもしれません。
2回に1回失敗しています。
プラグインを入れて様子をみることにしました。
予約失敗した状況をもとに、15分間隔でチェックして予約投稿の失敗をリカバリーする仕組みです。