私は2つの階層的なカスタム分類法を持ち、それぞれが対応するカスタム投稿タイプに基づいています。投稿タイプの編集画面でそれぞれのメタボックスを削除します。
カスタム分類メタボックスフォームカスタム投稿タイプを削除しました および カテゴリスタイル(階層)分類メタボックスを削除するにはどうすればよいですか。 しかし私はまだ立ち往生している.
私が使っている機能は次のとおりです。
function remove_taxonomies_metaboxes() {
remove_meta_box( 'partner_typediv', 'partners', 'normal' );
remove_meta_box( 'person_typediv', 'people', 'normal' );
}
add_action( 'admin_menu' , 'remove_taxonomies_metaboxes' );
Post_typesとcustom_taxonomiesの接頭辞は付けませんでしたが、それで終わりです。 Codexが推奨するadmin_menu
フックとadd_meta_boxes
フックを使ってみました。 3番目のパラメータにnormal
とside
の両方を試しました。
上記の関数は、投稿タイプと分類法を登録する関数の下のmu-plugins
ファイルにあります。
編集:それはregister_taxonomy関数のタイプミスでした。私はひどい人です。助けてくれてありがとう。私はまだいくつかのことを学びました!
register_taxonomy を使用してカスタム分類法を手動で登録している場合は、メタボックスが表示される場所を制御するために引数を渡すことができます。
以下の例では、show_ui
をfalse
に設定すると、編集画面、クイック編集画面、および管理メニューからメタボックスが完全に削除されます。しかし、show_ui
をtrue
に設定すると、show_in_quick_edit
およびmeta_box_cb
引数を使用することで、より微妙な制御を実現できます(後者をfalseに設定すると、必要に応じてCPT編集画面のメタボックスが非表示になります)。
register_taxonomy( 'your_custom_taxonomy', array( 'your_custom_post_type' ), $args );
$args = array(
'show_ui' => true,
'show_in_quick_edit' => false,
'meta_box_cb' => false,
);
あなたは、Post type画面ではなくpost
編集画面からボックスを削除したいと言っています、それであなたはそれを適用したいpost typeのためだけに 分類法の登録 をすることができるはずです、そしてこれを完全に避けてください。 Codexの例では、次のようにbook
の投稿タイプに対してのみサンプル分類法を登録しています。
register_taxonomy( 'genre', array( 'book' ), $args );
私はこれがあなたがする必要があることであると思います、しかしあなたは郵便タイプまたは分類法のために少しの登録コードも掲示しませんでした。
自分でメタボックスを作成した場合、つまりこれらのボックスはデフォルトのものではありません。この問題を回避するには、メタボックス ポストタイプ固有のフック上 を登録します。
do_action('add_meta_boxes_' . $post_type, $post);
または上記の例に従うには:
add_action('add_meta_boxes_book', 'your-box-callback');
それらのアプローチの1つはあなたのためにこれを解決するべきです。 remove_meta_box
を使うべきではないと思います。
登録されている投稿タイプからメタボックスを削除しようとしている場合は、これでうまくいきます(これもコーデックスの例に従います)。
function remove_taxonomies_metaboxes() {
remove_meta_box( 'genrediv', 'book', 'side' );
}
add_action( 'add_meta_boxes_book' , 'remove_taxonomies_metaboxes' );
admin_menu
が早すぎると確信していますが、それを検証しませんでした。 add_metaboxes
も私のために働きます。それがなぜあなたにはうまくいかないのか私にはわかりません。
カスタム分類管理にACFを使用すると、デフォルトのメタボックスは不要になります。私は、このコードを試してみました。
function remove_cuttax_metaboxes() {
$post_type = 'post';
$taxonomy = 'custom_taxonomy_slug';
remove_meta_box( 'tagsdiv'.$taxonomy, $post_type, 'side' );
}
add_action( 'admin_menu' , 'remove_cuttax_metaboxes', 100 );
低い優先順位(100)は、分類法がCPT-UIのようなプラグインによって作成された場合にもこのコードを機能させます。