【WordPress】投稿画面の「メディアを追加」ボタン等が効かない時の対処法

【WordPress】投稿画面の「メディアを追加」ボタン等が効かない時の対処法

WordPress(ワードプレス)投稿画面

WordPress(ワードプレス)のアップデート時などにありがちなエラーで、投稿画面の「メディアを追加」など一部のボタンが効かなくなることがあります。

今まで正常に動作していたものが突然動かなくなって、原因がわからず途方に暮れたという人もいるのではないでしょうか。

このような不具合は、何かの原因でjs(JavaScript)が正常に読み込まれていない場合などに発生するものです。

そこで今回は、管理画面や投稿画面の「メディアを追加」ボタンなどが正常に動作しなくなった場合の対処法について解説してみたいと思います。

【WordPress】投稿画面の「メディアを追加」ボタン等が効かない時の対処法

とりあえずググってみて、プラグインを全部停止してみたり、テーマを変更したりして改善するか試してみた人もいるのではないでしょうか。

また、wp-config.phpに『define(‘CONCATENATE_SCRIPTS’, false);』を追記して解決したという人もいると思います。まだ試していないという方は、まずはこれらの解決法を試してみて下さい。

それらのことを試してみたけど解決しなかったという人は、次のようなことに心当たりがないでしょうか?

サイトやブログの表示を高速化するためにfunctions.phpなどのファイルを編集した・・

もし心当たりがあれば、その辺が関係している可能性が高いです。

ワードプレスを利用している人の中には「WordPress 高速化」などと検索して、何だか早くなりそうだからfunctions.phpを編集してみたという人も多いと思います。

例えばよくある高速化の例として、functions.phpを編集してjs(JavaScript)を非同期で読み込ませる方法があります。

先述したように、ワードプレスの管理画面や投稿画面の「メディアを追加」ボタン等が効かない時は、何かの原因でjsファイルが正常に読み込まれていない場合などに発生します。

つまりfunctions.phpを編集してjsを非同期で読み込ませたことが原因で、このような不具合が発生することがあります。

ではもう少し具体的な例と対処法を見ていきましょう。

async属性でjsを非同期にしている箇所をコメントアウト

サイトやブログのレンダリングを速くする方法はいくつかありますが、async属性などを付与してjsを非同期で読み込む方法があります。

非同期でjsを読み込ませることで、サイトやブログのレンダリング速度は速くなるのですが、functions.phpの中でasync属性などをJavaScriptに付与する記述がある場合、ワードプレスの機能とぶつかってJavaScriptが正常に動作しなくなることがあります。

よくある例としてはfunctions.phpに以下のような記述をします。

add_filter(‘script_loader_tag’,function( $tag ) {
return str_replace( ‘src’, ‘async src’, $tag );
}, 10, 2);

または

add_filter(‘script_loader_tag’, ‘replace_script_tag’);
function replace_script_tag( $tag ) {
return str_replace( “type=’text/javascript'”, ‘async’, $tag );
}

これらは「script_loader_tag」というフィルターフックでJavaScriptにasync属性を付与する記述です。

もしこのような記述があって、投稿画面の「メディアを追加」などのボタンが効かなくなっていたら、上記のようなadd_filterから始まる部分をコメントアウトするか削除してみて下さい。

プラグインを全部停止してみたり、テーマを変更したりしても改善されない場合は、functions.phpなどにJavaScriptを非同期で読み込む記述をしていないか試してみて下さい。

 

avatar

ヒビキ

async属性だのscript_loader_tagだの難しい単語が出てきましたが、覚えなくても大丈夫です。

原因はjs(JavaScript)のエラー

WordPress(ワードプレス)で記事投稿画面などのボタンが効かなくなる場合、ブラウザのデベロッパーツール(開発者ツール)の中にあるコンソール画面を見ると、以下のようなエラーメッセージが出ていると思います。

例えば以下のようなエラーメッセージが表示されます。

ReferenceError: reference to undefined property “プロパティ名”

Uncaught TypeError: Cannot read property ‘プロパティ名’ of undefined

コンソール画面に表示されるこのようなエラーメッセージは、JavaScript関連のエラーを意味しています。

JavaScriptはクライアントサイドで動作するスクリプトなので、サーバーサイドが原因ではありません。つまりサーバーの設定などは関係ありません。

エラーメッセージの詳細については割愛しますが、簡単に言うと‟プロパティ名が間違っているよ”とか、‟プロパティ名が定義されていないから読み込めないよ”といった感じの意味です。

ワードプレスのプラグインを自作で作ったのなら覚えがあるかもしれませんが、大抵の人はこのようなエラーメッセージが出てもなんのこっちゃ覚えがないですよね。

このような場合は、ざっくりとJavaScriptがうまく動いていないな~くらいに思っていればいいです。

今回紹介した方法で全てが解決するわけではありませんが、もしいろんな方法を試してみたけど改善されなかった場合は参考にしてみて下さい。

WordPressカテゴリの最新記事