WP 投稿時にメディアのグリット表示が出来ない不具合




※備忘録

メディアに格納したはずの写真がグリット表示しない現象の修正方法

 

リストには表示されるがグリット(サムネイル)には表示されないのはどんなにググってみても、「プラグインの干渉」を書かれていて、仕方なく一つずつプラグインを停止していきながら試してみる事にしました。(定石です)


プラグインの干渉がなかった場合は、いよいよWordPressのファイル修正をします。
※全部のバージョンで通用するかは分かりません。試される際は必ずバックアップを取ってやって下さい。
(※注! 2019-0615 バージョン5.2.1でも有効なのを確認しました)

取り返しがつかなくなっても責任は持てません。自己責任でお願いいたします。

wp-admin/admin-ajax.phpを開く

37行目付近にある

@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' ) );
}
ファイルを上書き保存する。
これでメディアのグリットをみて下さい。

サムネイルが表示されているはずです。

さてここから!

私は、グリット(サムネイル)が表示されたので早速投稿テストをやりましたが管理画面上で投稿する際には確かに画像を入力して投稿したはずなのに、アップ後のページを確認してみると画像だけ投稿されていない状態になる。
この現象も幾つか報告されていますが、殆どの原因は「jetpack」です。私はjetpackを停止したら不具合が解消されました。
jetpackは無料機能でもすごく良いのに残念です。
Googleアナリティクスで代用するしか有りません。

※追記 (2019/0619)

WordPressをアップデートした時、または自動アップデートされていた場合、また同じ症状が出る場合があります。
その解決法として、一旦デフォルトに戻す(コメントアウトした分を外して、追加した記述をコメントアウトする。それで一旦保存。また元に戻してアップデートしたら直ります)