1

管理エリアの投稿表示内にコンテンツを表示するカスタム メタ ボックスを作成し、wysiwyg エディターの下ではなくサイドバーに表示するようにしました。コンテキストに「サイド」を追加しましたが、何も起こりません! 私はこれで何時間も遊んでいますが、運がありません。

これは私のコードです:

function add_custom_meta_box() {
    add_meta_box (
        'custom_meta_box',
        'Custom Meta Box Title',
        'show_custom_meta_box',
        'post',
        'side',
        'high'
    );
}
add_action('add_meta_boxes', 'add_custom_meta_box');

function show_custom_meta_box() {
    // here i have all the code
}
4

1 に答える 1

1

このQ&Aを基に、カスタムメタボックスをサイドカラムの2番目の位置に強制します。

コメントを確認し、の警告に注意してくださいadmin_init
これは、ユーザーが自分で位置を再配置していない場合にのみ機能します。admin_init新しいユーザーを登録すると、フックとして位置が設定されuser_register、同じコールバック関数にアタッチされます。

// This fires at **every** page load, a better hook must be found
add_action( 'admin_init', 'set_user_metaboxes_so_14183498' ); 

// This fires when a new user is created
add_action( 'user_register', 'set_user_metaboxes_so_14183498' );  

function set_user_metaboxes_so_14183498( $user_id = null ) 
{
    // This is the metakey we will need to update  
    $meta_key = 'meta-box-order_post';

    // So this can be used without hooking into user_register
    if( !$user_id )
        $user_id = get_current_user_id(); 

    // Set the default order if it has not been set yet by the user. 
    // These are WP handles, PLUS our custom meta box handle
    if ( ! get_user_meta( $user_id, $meta_key, true ) ) 
    {
        $meta_value = array(
            'side' => 'submitdiv,custom_meta_box,formatdiv,postimagediv',
            'normal' => 'postcustom,commentsdiv,slugdiv,revisionsdiv',
            'advanced' => '',
        );
        update_user_meta( $user_id, $meta_key, $meta_value );
    }
}
于 2013-01-06T16:11:30.253 に答える