get_media_itemという関数を無効にし自作関数を追加したい
-
前提状況
media-upload.php?type=image&TB_iframe=trueのような形で
アップローダを追加しています。
画像を選択した後にアップロードというボタンを押すと
get_media_item関数が走っていると思います。
このアップロードボタンを押した後に出てくる画像のデータや
編集フォームなどを非表示にしたく調査しています。やってみたこと
以下のソースを自作プラグインとして組み込んでみましたが
反応しませんでした。//画像アップロード後の画面不要要素非表示のため既存の関数を削除 remove_filter( 'async_upload_image', 'get_media_item', 10, 2 ); //画像アップロード後の画面不要要素非表示 add_filter( 'async_upload_image', 'jisakufanction', 10, 2 ); //画像アップロード後の画面不要要素非表示のため既存の関数を削除 remove_filter( 'async_upload_file', 'get_media_item', 10, 2 ); //画像アップロード後の画面不要要素非表示 add_filter( 'async_upload_file', 'jisakufanction', 10, 2 ); //画像アップロード後の要素非表示 function jisakufanction () { echo "テスト成功"; }
サーバのエラーとしてはいかが吐き出されていました。
PHP Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'jisaku_Admin' does not have a method '__return_false'
このクラスは上記ソースと同じphp内に書かれているもので
管理画面のほかの部分(メニューの不要部分など)を
非表示にしています。
上記ソースをクラスの外に書いてテストした時に
このエラーが出ました。打開策として
cssでdisplay:noneとすれば不要な要素を非表示にすることはできました。
が、こういった管理画面のクラス名、domの構造は変わる可能性もあると予想し
できれば関数単位で対応したいと考えています。またjqueryのdom操作での対応も現在調査しています。
ajaxでの非同期通信+iframeなどの状況で最初は
javascriptのMutationObserverでの対応も考えてみましたが
http://qiita.com/MysticDoll/items/316190f137af529cd33f
こちらの記事をみて無理に対応すると
セキュリティリスクが出そうな感じがしたので
イベントベースでごにょごにょできないかを模索しています。
(react,vueベースになったらこちらもやばそうですが・・・)とはいえwordpressのコアを把握し
間接的にカスタマイズできれば一番いいのかなと考えています。
間違い、その他おすすめの方法論などご教授いただけましたら幸いです。
よろしくお願いいたします。
- トピック「get_media_itemという関数を無効にし自作関数を追加したい」には新たに返信することはできません。