カスタム投稿タイプを使用してプラグインを作成しました。デフォルトの2列の投稿ページを1列にする必要があります。同時に、Publishメタボックスが下に移動する必要があります。私は関数を介してこれを何とかする必要があります。
私はWPSEからいくつかの解決策を持っていますが、私が見つけた唯一の解決策は実際に "Publish"メタボックスを隠しています。その理由がわからないようです。
これを行う方法についての任意のアイデア?
get_user_option_meta-box-order_{$page}
というフィルタがあります。ここで$page
は投稿タイプの名前です。 submitdiv
が配列の最後の値であることを確認してください。
add_filter( 'get_user_option_meta-box-order_post', 'wpse25793_one_column_for_all' );
function wpse25793_one_column_for_all( $order )
{
return array(
'normal' => join( ",", array(
'postexcerpt',
'formatdiv',
'trackbacksdiv',
'tagsdiv-post_tag',
'categorydiv',
'postimagediv',
'postcustom',
'commentstatusdiv',
'slugdiv',
'authordiv',
'submitdiv',
) ),
'side' => '',
'advanced' => '',
);
}
1つの方法は、元のメタボックスを削除し、次に再追加 )メタボックス、更新されたパラメータたとえば、スラッグcpt-slug
を持つカスタム投稿タイプの場合、これは "Featured Image"メタボックスを横の列からメインの列に移動します。
Publishメタボックスのパラメータはsubmitdiv
、正しいコールバックはpost_submit_meta_box()
です。これらの正しいパラメータを反映するように、以下のコードを更新しました。また、add_meta_box()
$context
パラメータを'high'
から'low'
に変更しました。これにより、Publishメタボックスが下部に追加されます。
<?php
function wpse25793_move_post_metaboxes( $post ) {
global $wp_meta_boxes;
remove_meta_box( 'submitdiv', 'cpt-slug', 'side' );
add_meta_box( 'submitdiv', __( 'Publish' ), 'post_submit_meta_box', 'cpt-slug', 'normal', 'low' );
}
add_action( 'add_meta_boxes_cpt-slug', 'wpse25793_move_post_metaboxes' );
?>
アプローチは "Publish"メタボックスでも同じです。注目の画像メタボックスではなく、公開メタボックスを削除または追加するだけです。
こんにちは、「強制1列」に関する質問の後半部分に回答するだけです。get_user_option_screen_layout_{Post_type}
フィルターを使用してそれを実行できます。すべてのユーザーをターゲットにするには、次のようにします。
add_filter( 'get_user_option_screen_layout_spectacle',
function( $result, $option, $user ){
if( !empty($user) ):
$result = '1';
endif;
return $result;
},
10, 3 );