感谢Bainternet的提示,实际上这很容易用jQuery实现。
示例(为清晰起见,四个元框已关闭):
以下是我所做的:
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
对于container 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);