worrdpressのメディアライブラリが表示されなくなりました。
その際対策としてプラグインの停止、wp-config.phpにコード追加、admin-ajax.phpの修正、テーマの変更を行いましたが変化はありませんでした。
他にどのような原因が考えられるでしょうか。
まあとりあえずPHPのエラーログ見よう
表示するものがありませんとも出てないのを見ると
多分Fatal Errorで引っかかってそこで処理が止まってる線が濃厚
エラーログはどこで確認できるのでしょうか
サーバーによって違いますが、大体サーバー直下に
公開フォルダ(wwwとかhtdocsとかpublishとか)と並んでいる
logsフォルダの中にphp_error.logって名前でいてます
サーバー管理画面のphpの設定で
どのレベルのエラーまで書き出すかの設定とかします
デフォルトでは書き出さない設定のサーバーもあるので
その場合はまず書き出すように設定
サーバーの仕様でエラーログが見えないようであれば、WordPress のデバッグモードを有効にしてみてください。
PHPのエラーが出ていたら画面にエラーメッセージが表示されると思います。
https://wpdocs.osdn.jp/WordPress%E3%81%A7%E3%81%AE%E3%83%87%E3%83%90%E3%83%83%E3%82%B0 参照
デバックモードにて
Warning: Cannot modify header information -
headers already sent by (output started at /home/@@@@@@/@@@@@@@@.com/public_html/wp-includes/functions.php:3959)
in /home/@@@@@@@/@@@@@@@@@.com/public_html/wp-admin/includes/misc.php on line 1144
と表示されました。
misc.phpの1144行目が原因ということでしょうか。
過去にそのファイルを修正していなければ、おそらく違います。
「admin-ajax.phpの修正」って、wp-admin/admin-ajax.php を直接修正したのでしょうか?
具体的には、なにを修正したのでしょうか?
「メディアライブラリが表示されなくなった直前にやったこと」
(たとえばレンタルサーバーの管理画面でWAFをONにしたとか、
新しいプラグインの導入とか、FTPで画像をたくさんアップしたとか)と
「表示されなくなったあとに『対策』としてやったこと」を
分けて追記お願いします。
(特に「直前にやったこと」のほうを詳しく)
>wp-admin/admin-ajax.php を直接修正したのでしょうか?
そうなります。メディアライブラリの不具合について調べていた際にadmin-ajax.php内の
@header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) );
を
if(in_array($_POST['action'], array('query-attachments', 'send-attachment-to-editor'))){
@header('Content-Type: application/json; charset=' . get_option('blog_charset'));
}else{
@header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) );
}
に修正するという解決策があると聞いたので実行してみました。
>「直前にやったこと」と「対策としてやったこと」
本文に書いた処置はすべて「対策」として行ったものです。
正直なところ久々にwordpressを開いたので「直前にやったこと」の詳細は思い出せませんが、
プラグインやテーマの更新くらいしか行っていないと思います。
ちなみにメディアライブラリページをデベロッパーモードで見たところ
Uncaught SyntaxError: Invalid or unexpected token load-scripts.php:69
というエラーが出ていました。これも関係しているのでしょうか。
> 正直なところ久々にwordpressを開いたので「直前にやったこと」の詳細は思い出せませんが、
> プラグインやテーマの更新くらいしか行っていないと思います。
書き換えたファイルを一度元に戻し
更新したプラグイン・テーマの元のバージョンを入手して
各インストールフォルダにある現行バージョンと
FTPなどでフォルダごと差し替えて
不具合が続くか確認してみてください。
(不具合が出る直前にバックアップを取っていればこれらの手間は不要です。バックアップを使って復元してください)
もしこれで治るようでしたら
テーマ・プラグインのいずれかが原因ということになります。
load-scripts.php は、指定された JavaScript を送信しているだけなので、これで、エラーということは、JavaScript のファイルで、読み込まれていないのがありそうですね。
バックアップを順に当ててみたところwordpressの更新が原因のようでした。
更新前のverであればプラグインやテーマはそのままでも問題なく動いたためしばらくこのまま運用していこうと思います。

回答1件
あなたの回答
tips
プレビュー