web-dev-qa-db-ja.com

メディアライブラリを拡張する方法(WP 4.4)

Media Libraryの隣に新しいタブを実装しようとしています。これを実装するための解決策が見つかりませんでした。私はこのリンクに新しいタブを実装する方法の例を見つけました: https://Gist.github.com/Fab1en/4586865 しかし、タブはメディア追加ボタンによって引き起こされたモーダルフォームに表示されません。しかし、おすすめ画像のメディアポップアップやその他のカスタムボタンを呼び出すと、作成した[新しいタブ]が表示されます。私は本当にここで迷子になっています、なぜこれらのタブがある場所に表示されて別の場所に表示されないのかわかりません。

ありがとうございました

enter image description here 

2
minnur

タブではありませんが、アップロードボタンで始めることができるかもしれません。 pre-upload-ui とそれに続くいくつかのアクションをチェックしてください。すなわち pre-plupload-upload-uipost-upload-ui です。

これは 'Upload Files'タブと 'Media> Add New'に二つのボタンを追加します。

ボタン

add_action( 'pre-plupload-upload-ui', 'wpse_20160202_pre_plupload_upload_ui' );
add_action( 'post-upload-ui', 'wpse_20160202_post_upload_ui' );

function wpse_20160202_pre_plupload_upload_ui()
{
    # see https://core.trac.wordpress.org/browser/tags/4.4.1/src/wp-admin/includes/media.php#L1902

    print '<button onclick="javascript:alert(\'Upload From Dropbox\');" id="db-upload-btn" class="button media-button button-primary button-large" style="margin-bottom:10px;">Upload From Dropbox</button>';
}


function wpse_20160202_post_upload_ui()
{
    # see wp-includes/media-template.php

    print '<button onclick="javascript:alert(\'Another Upload From Dropbox\');" id="db-upload-btn" class="button media-button button-primary button-large" style="margin-bottom:10px;">Another Upload From Dropbox</button>';
}

TABS

これを追加するだけで代替案を表示できます。 media_upload_tabs は側面に含まれるタブを制御するのに役立ち、 media_upload_{tab}wp_iframe() を使用してコンテンツをレンダリングするのに役立ちます。

add_filter( 'media_upload_tabs', 'media_upload_tabs__tab_slug' );

function media_upload_tabs__tab_slug( $tabs ) {
    $newtab = array ( 'tab_slug' => 'Your Tab Name' );
    return array_merge( $tabs, $newtab );
}

add_action( 'media_upload_tab_slug', 'media_upload_tab_slug__content' );

function media_upload_tab_slug__content() {
    wp_iframe( 'media_upload_tab_slug_content__iframe' );
}

function media_upload_tab_slug_content__iframe() {
    ?>
    <div>tab_slug: Add your content here.</div><?php
}
2
jgraup