どのように、各投稿の種類(投稿、ページ、custom_post_type)から「Publish metabox」を削除するにはどうすればいいですか。
投稿タイプごとに手動で削除する方法はわかりますが、グローバルに削除する方法はありますか。
remove_metabox(...)
ブラウザ開発者向けツールに慣れている場合は、メタボックスID(コンテナのdiv ID)をすぐに見つけることができます。この場合、それはsubmitdiv
と呼ばれます。これを削除するには、 remove_meta_box()
関数を使用します。形式は次のとおりです。
remove_meta_box( 'metabox_id', 'post_type', 'default_position' );
remove_meta_box( 'submitdiv', 'post', 'side' );
これが デフォルトのメタボックスIDのリストです 。 すべての投稿タイプから特定のメタボックスを削除する場合は、最初に get_post_types()
functionを使用してすべての投稿タイプを取得する必要があります。これは配列を返します。それから、post_type
をremove_meta_box()
関数に渡して、メタボックスをループして削除できます。
/**
* Hide Metaboxes For All Post Types
*/
function hide_publish_metabox() {
$post_types = get_post_types( '', 'names' );
if( ! empty( $post_types ) ) {
foreach( $post_types as $type ) {
remove_meta_box( 'submitdiv', $type, 'side' );
}
}
}
add_action( 'do_meta_boxes', 'hide_publish_metabox' );