LoginSignup
0
0

More than 5 years have passed since last update.

AdvancedCustomFieldsで、画像の「完全に削除する」を押した時の怪しい挙動を修正する

Last updated at Posted at 2015-10-13

みんな大好き AdvancedCustomFields

キレイで分かりやすいカスタムフィールドを
簡単に実装できるWordPressのプラグイン「AdvancedCustomFields」(以下ACF)
検索に弱いなんて弱点もあれど、愛用されている方も多いのではないでしょうか。
僕もPRO版を購入して、ありがたく活用させて頂いています。

この記事は、そんなACFのバージョン5(=PRO版)でのみ発生する妙な挙動のメモです。

画像を「完全に削除する」を押してもサムネイルが消えない

ACFで画像フィールドを作成して画像を登録。
その後、鉛筆マークをクリックして画像の編集を行ってみる。

スクリーンショット 2015-10-13 22.40.48.png

画像のトリミングなどは問題なく行えるけど、ここで「完全に削除する」をクリック。

スクリーンショット 2015-10-13 22.41.13.png

すると画像はなくなっているハズなのにサムネイルが出たままになる。

スクリーンショット 2015-10-13 22.40.48.png

鉛筆マークを押すと何度でも「完全に削除する」ができてしまう。
実は、ちゃんと画像は消えているのだけど、
バツを押すかページを更新するまでそれが反映されていないみたい。

解決案

function.phpに以下を記述すれば、とりあえず動きます。

function.php
function my_acf_delete_attachment(){
    ?>
    <script type="text/javascript">
    (function($){
        var open_browser  = false;
        var browser_index = '';
        $(document).on('click','.acf-soh-target a[data-name=edit]',function(){
            open_browser = true;
            browser_index = $('.acf-soh-target a[data-name=edit]').index($(this));
        });
        $(document).on('click','.acf-field a:not([data-name=edit])',function(){
            open_browser = false;
        });
        $(document).on('click','.delete-attachment',function(){
            if(! $('.attachment-details')[0] && open_browser){
                $('.media-modal-close').click();
                $('.acf-soh-target a[data-name=remove]').eq(browser_index).click();
                open_browser = false;
            }
        });
    })(jQuery);
    </script>
    <?php
}
add_action('acf/input/admin_head','my_acf_delete_attachment');

何をしているかというと、「完全に削除する」をクリックしたら、
同時に画像のバツマークをクリックさせているだけ。
必要でないときは発動しない様に、open_browserで状況を管理しています。

とはいえ

ACFのアクションフックを使ってゴニョゴニョ…とか、
もっとスマートな方法は絶対にあると思うので思いついたら追記します。

お詳しい方がいらっしゃっていたら、どうぞ忌憚のないご意見いただけたら。

ちなみに

この挙動は公式サポートを見るに、どうも仕様らしい?
うーん、ACFのバージョン4まではこういう事は無かったので、なにか理由があるのかなあ。
じっくり調べてみます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0