【解決】WordPressのメディアライブラリが表示されない現象

ITネット, 調査結果, Wordpress

事の発端

適宜、Wordpressで投稿の公開予約をしていたのですが、
最近、既定の時間に投稿されない投稿ミスが続きました。

WordPressの予約投稿は、
誰かがWordpressにアクセスした際に「wp-cron.php」が呼び出され
投稿等の処理が自動でされる疑似的なcron機能によって動いています。
したがって、アクセスごとにwp-cron.phpが処理を行うので、
アクセス数が増えると負荷もどんどん増します。

このBlogの場合、投稿ミスがどう起きたのかはよく分かりませんが、
このWordpressのCron機能に問題が発生したと判断しました。

 

WordPressのwp-cron.php自動読み込みの停止

FTPでログインし、「wp-config.php」を書き換えます。

define('DISABLE_WP_CRON’, 'true’);

の一文を追記し、Wordpressの疑似cronを停止させます。
(ここに落とし穴がありました、解決方法に注意点が書いています)

 

サーバーのcron機能をONにする

サーバーのcron機能を使用して、一定の時間ごとにwp-cron.phpを呼び出します。

Lolipopの場合、サーバーの管理・設定 → cron設定 から行います。
私の場合、一応、5分毎に設定してみています。

Wordpress、メディアライブラリが表示されない

ちなみにwp-cron.phpは、
テーマやプラグインのアップデート通知やプラグイン機能(自動バックアップ)などの実行にも関係しているので、
可能な限りwp-cron.phpは定期的にアクセスされるようにした方が好ましいです。

 

WordPressの動作に問題が発生

そして、ここで、問題が発生しました。
何かがおかしい。。。
動作が不安定でもないけど、表示や画面遷移が変?

問題の特徴

  • メディアライブラリが表示されない
    →リスト表示は可能。グリッド表示ができない
    Wordpress、メディアライブラリが表示されない
  • 投稿、下書きを押すとpost.phpで止まって(白い画面になり)次の画面に遷移しない
  • デバッグモードでは、何かしらのエラーを常に吐く
    →「wp-config.php」に起因するエラーです。
  • 正しいログイン情報を入力してもログインできない
    →エラーは吐かずにログイン画面から遷移しない

確認事項

  • post.phpなど白い画面で停止しても、操作自体は正常い記録されている
  • 画像のアップロードは正常に行える
  • プラグインを無効にしても動作は関係ない
  • パーミッションも正常に設定されている
  • admin-ajax.phpは問題ない。修正しても変化なし
  • WordPressを再インストールしても変化なし
  • functions.phpには不要なスペースや改行は入っていない

いろいろな項目をチェックしました。
探しに探して、悩みに悩んでたどり着きました。

 

解決方法

Wordpress、メディアライブラリが表示されないこれを見るだけでわかる人もいるかと思います。
ずばり、文字コードの問題です。

Windowsのメモ帳で保存すると、「UTF-8」で保存できていそうでしたが、
本来は、「UTF-8N」で保存する必要があります。

これでFTPアップロードすると何事もなかったように改善しました。

 

ちなみにWordpressのコメントに下記の記載があります。

// 注意:
// Windows の “メモ帳" でこのファイルを編集しないでください !
// 問題なく使えるテキストエディタ
// (http://wpdocs.osdn.jp/%E7%94%A8%E8%AA%9E%E9%9B%86#.E3.83.86.E3.82.AD.E3.82.B9.E3.83.88.E3.82.A8.E3.83.87.E3.82.A3.E3.82.BF 参照)
// を使用し、必ず UTF-8 の BOM なし (UTF-8N) で保存してください。

簡単な理由でした。。。
しょうもない理由ですが、気が付かなかったので、メモ程度に残しておきます。

 

メモ

Warning: Cannot modify header information – headers already sent by (output started at /[FTPパス]/wp-config.php:1) in /[FTPパス]/wp-admin/includes/misc.php on line 1196

Warning: Cannot modify header information – headers already sent by (output started at /[FTPパス]/wp-config.php:1) in /[FTPパス]/wp-includes/pluggable.php on line 1251

Warning: Cannot modify header information – headers already sent by (output started at /[FTPパス]/wp-config.php:1) in /[FTPパス]/wp-includes/pluggable.php on line 1254