WordPressのメディアライブラリに画像が表示されない、挿入出来ない、対処方法
自分の覚書を兼ねて投稿。
WordPressを使っていて、メディアライブラリにアップロードした画像が表示されないとか画像が挿入出来ない症状になっていてGoogleさんに散々聞きまくってもプラグインを外してみろの回答ばかりで的を得ておらず困っておりました。
そこでブラウザのWebデバッグ機能で追っかけてみると、admin-ajax.phpを使って画像を表示させている模様。つまりadmin-ajax.phpの動作に何か問題があるのでは無いかという事で調べていた所、やっと発見しました。
開発メモ@uehiさんの記事にまんまの説明がありました。
引用させていただきますと
メディアライブラリの選択ウィンドウの一覧はAjaxで一覧データのJSONを取得しているが、どうも環境によってはこのレスポンスヘッダのContent-Typeが「text/html」になってしまうことが原因で、正しく動作するにはこれが「application/json」である必要がある。
との事でした。Apache2やphp5のアップデートなどによって挙動が変わってしまった時に起こりやすい様でした。
修正を行うには、直接admin-ajax.phpファイルを書き換える必要があります。
wp-admin/admin-ajax.php
[html]
@header( 'Content-Type: text/html; charset=’ . get_option( 'blog_charset’ ) );[/html]
[html]
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’ ) );
}
[/html]
ちなみにOSはDebian Linux 3.2.46-1、Apacheは2.2.22、PHPは5.4.4-14+deb7u9を使用しております。WordPressは、3.9.1です。比較的新しいバージョンでの情報というのが無いので役に立てばいいなー程度です。
ディスカッション
コメント一覧
ありがとうございました。こちらも同じ状況で困惑しておりましたが、こちらの情報通りに修正したところ見事に復旧しました。アドバイスありがとうございました。
>KTさん
受け売り情報ではありますが、お役に立ててよかったです。
私も同じ問題で苦戦しておりましたが、無事解決致しました。本当にありがとうございます。
>HKさん
お役に立てて何よりです!
ありがとうございます。
解決しましたm(_ _)m
ありがとうございます
サーバー移転してしまって
ここにきて初めて解決
本当に感謝です
どこも「プラグイン外してみて。」ばかりで、「やってるけど、できない~・・・」
と困り果てていたところ、ysnさんのサイトへたどり着きました。
わかりやすい対処法で、すぐに解決できました!
本当にありがとうございます。
先ほどコメントしましたが、消してくださいm(_ _)m
$menu関連を調べてみたら、function.phpに書いていた記述が原因だったみたいです…
add_action(‘admin_init’, ‘remove_menus’);
function remove_menus(){
if(!current_user_can(‘add_users’)){
remove_menu_page(‘jetpack’);
}
}
失礼しましたm(_ _)m
最新の4.1でも再現して悩んでまして助かりました。
WordPress 4.1.1 にて同じ現象が発生して、このページを参考にさせていただきました。
ありがとうございます。
その後調べてみたところ、
WordPressをインストールした上位ディレクトリの
.htaccess に記載してあった
——————————
php_value output_handler mb_output_handler
——————————
をコメントアウトしたところ、画像が表示されることを発見しました。
このコメントアウトは元に戻して、
WordPressをインストールしたディレクトリの .htaccess に
output_handler を上書きするように以下を追記したところ無事解決しました。
——————————
php_value output_handler none
——————————
これで admin-ajax.php を編集しなくても
メディアライブラリにアップロードした画像が表示され、
投稿に挿入できるようになりました。
ちなみに上位ディレクトリに .htaccessが存在しなくても
サーバーのPHPの設定で
output_handlerの設定がされている場合があります。
ご参考まで。
同じでした!サーバーのphp設定でした。オンにして.htaccessに
php_value output_handler noneを記述で。
画像しっかり入りました。functionsを記述ミスでは内容でした。
ありがとうございました。
ピンバック & トラックバック一覧
[…] WordPressのメディアライブラリに画像が表示されない、挿入出来ない、対処方法(today’s ∋シナ冫〒さん) […]
[…] WordPressのメディアライブラリに画像が表示されない、挿入出来ない、対処方法 […]
[…] 参考WordPressの投稿時のメディアライブラリで画像が表示されない、記事に挿入できない現象を対策する方法 参考これで失敗したら立ち直れない【WordPress】 | 秋葉仁はがんばりません […]
[…] http://karinto.in/2014/05/19/wordpress/ […]
[…] 参考:http://karinto.in/2014/05/19/wordpress/ […]
[…] 参考:http://karinto.in/2014/05/19/wordpress/ […]
[…] あちこち検索していたらよしな様のブログに原因が載っていました。 […]
[…] http://beginners-high.com/wordpress-medialibrary/http://karinto.in/2014/05/19/wordpress/ しかし、wp-admin/admin-ajax.php […]