web-dev-qa-db-ja.com

投稿編集ページでメタボックスをグループ化する方法

私はこれが現在不可能であると思われるが、まあまあ..私は尋ねるでしょう、あなた方の1人は共有するいくつかの興味深い考えを持っているかもしれません。

それでは、投稿編集ページに次のような分類用語メタボックスがあるとしましょう。

  • チーム会計
  • チームスーパー教祖
  • チーム開発者
  • 好きなアイスクリーム

3つの「チーム」メタボックスを「チーム」と呼ばれる1つの「コンテナ」ボックスにまとめることができるのはいいことではないでしょうか。これは、3つの分類法メタボックスを含む、タイトル付きの正当で空のメタボックスです。

目標は、よりユーザーフレンドリーで、似たようなメタボックスを一緒にグループ化しておくことです(たくさんの分類法があるとき、それは本当に混乱します)。

これは実行可能だと思いますか?

4
mike23

ヒントBainternetに感謝します。実際、これはjQueryを使って実装するのがとても簡単です。

例(4つのメタボックスは明確にするために閉じています):

Example of four taxonomy meta-boxes grouped into a container meta-box

これが私がしたことです:

var $j = jQuery.noConflict();
$j(document).ready(function() {
    $j("#side-sortables").append('<div id="container_div" class="postbox meta-box-sortables ui-sortable"><div class="handlediv" title="Click to toggle."><br></div><h3 class="hndle"><span>Container Meta Box</span></h3><div id="container_inside" class="inside"></div></div>');
    $j("#my_metabox_div").appendTo("#container_inside");
    $j("#my_other_metabox_div").appendTo("#container_inside");
    etc...
});

meta-box-sortablesクラスとui-sortableクラスをコンテナdivに追加しました。これにより、コンテナ内のボックスを並べ替えることもできます(ちょっとトリッキーですが、divは簡単にジャンプします)。

このスクリプトは、管理ページで呼び出されます。

function add_admin_scripts( $hook ) {
    // load script on new post page
    if ( $hook == 'post-new.php' ) {
        wp_enqueue_script( 'group_meta_boxes', get_bloginfo('template_directory').'/js/group_meta_boxes.js' );
    }
}
add_action('admin_enqueue_scripts','add_admin_scripts',10,1);
6
mike23