web-dev-qa-db-ja.com

カスタムポストショートコードを挿入するためのカスタムメディアアップロードコンテンツ

私は、ページまたは投稿に挿入するショートコードとともにカスタム投稿タイプ「ポートフォリオ」を作成するプラグインに取り組んでいます。

ショートコードは:[portfolio option1=“1” option2=“0” option3=“1” ]

そしてそれはうまく機能し、カスタムWP_queryを介してすべてのカスタム投稿を表示します。しかし、私はさらに進みたいです。

ポートフォリオショートコード出力を生成するためのupload mediaの横にカスタムボタンを作成します。ユーザーは、どの投稿を含めるかを選択し、すべてのオプションを定義できます。したがって、出力は次のようになります:[portfolio option1=“1” option2=“0” option3=“1” ids=“12,311,432,443,” ]

これは、wpのmedia.phpで見つけたボタンのコードです。

add_action( 'media_buttons', array( $this, 'media_buttons' ) );

public function media_buttons($editor_id = 'content') {
    $post = get_post();
    if ( ! $post && ! empty( $GLOBALS['post_ID'] ) )
        $post = $GLOBALS['post_ID'];

    wp_enqueue_media( array(
        'post' => $post
        ) );
    $img = '<span class="wp-media-buttons-icon"></span> ';

    echo '<a href="#" id="insert-media-button" class="button insert-media add_media" data-editor="' . esc_attr( $editor_id ) . '" title="' . esc_attr__( 'Add Portfolio' ) . '">' . $img . __( 'Add Portfolio' ) . '</a>';
}

そして、それは何をします。しかし、今、作成されたウィンドウのコンテンツを変更する最良の方法は何ですか?これが私がそれをどのように見ているかの写真です、どんな説明よりも良いです:

enter image description here これを達成するのにどれほど潜在的に複雑でトリッキーでしょうか?どの方向を見ればよいのかわかりませんが、それは可能ですか?解決策を模索し始める場所を提案してください。

追伸:または、そもそも私が間違っていて、ThickBoxの使用を検討すべきですか?しかし、私はメディアアップロードポップアップのネイティブの外観を維持したいと考えています。

乾杯!

編集:

まあ、おそらくもっと良い解決策は、ネイティブギャラリーのショートコードパターンを使用することでしょう。たとえば here で説明したように、メディアアップロードウィンドウに新しいメニュー項目を追加することは難しくありません。

したがって、最終的なビジョンは次のようなものです。

enter image description hereenter image description here

それはBackbone.jsで行う必要があると思いますか?しかし、主な質問は、画像の代わりにカスタム投稿を操作できますか?

12
Nikita

enter image description here

ここで私のガイドを見てください- http://www.wpexplorer.com/wordpress-tinymce-tweaks/ -挿入よりもオプションを選択できるポップアップウィンドウを作成する方法を確認できますショートコード。無料のSymple Shortcodesプラグインをダウンロードすると、ライブ実装も確認できます。

ユーザーに挿入する投稿を選択させる代わりに、ポートフォリオにカテゴリー分類を追加して、ユーザーがアイテムをカテゴリーに整理できるようにします。次に、ポップアップウィンドウに単純なドロップダウンを表示して、投稿を取得するカテゴリをユーザーが選択できるようにします。

新しい投稿を含めるために手動でショートコードを更新する必要がなく、投稿をカテゴリーに追加するだけで、ショートコードが自動的に投稿を表示するので、これはエンドユーザーにとって将来の管理がはるかに簡単です。

  • AJ
1
WPExplorer