web-dev-qa-db-ja.com

ATTACHMENT DISPLAY SETTINGSでLINK TO機能を拡張する方法

WP 3.4.x以前では、attachment_fields_to_editフィルタをいじることでメディアマネージャにボタンを追加することが可能でした。たとえば、プラグインは、アイテムがオーディオファイルであることが判明したときに、URLフィールドに追加のボタンとしてHTMLを追加することができます。

 $playertag = "[audio $url]";
 $fields['url']['html'] .= 
      "<button type='button' class='button data-link-url='$playertag' urlaudioplayer audio-player-$postid'>Audio Player</button>"; 

新しいメディアマネージャは、そのHTMLタグ内にあったボタンのセットをプルダウンメニュー、つまり<select .../>アイテムに変更しました。 HTMLコードはmedia-template.phpで発行されます。新しいコードはまだattachment_fields_to_editフィルタを呼び出しますが、どのフィールドも渡しません。

コアをハックすることなくこの選択項目を拡張する方法はありますか(私はしません)。項目を追加するためにjQueryを使用するjsを少し書くことは考えられますか?

4
O. Jones

はい、それは以前と同じ方法で可能です。私はあなたがフィルタがもうパラメータを通過していないと思う理由を知りません。

add_filter('attachment_fields_to_edit', 'user16975_edit_fields', 10, 2);
function user16975_edit_fields($form_fields, $attachment){

    // check for an audio attachment
    if ( substr($attachment->post_mime_type, 0, 5) == 'audio' ) {
        $playertag =  $playertag = "[audio ".wp_get_attachment_url($attachment->ID)."]";
        $form_fields["audioplayer"] = array(
            "label" => "Audio player",
            "input" => "html",
            "html" => "<button type='button' class='button' data-link-url='$playertag' audioplayer='audio-player-{$attachment->ID}'>Audio Player</button>",
        );
    }

    return $form_fields;
}

これが結果です。

Audio player button

2