Eliminar Custom Taxonomy Metabox de la pantalla Custom Post Type

15

Tengo dos taxonomías jerárquicas personalizadas, cada una en un tipo de publicación personalizada correspondiente. Me gustaría eliminar el metabox para cada uno en la pantalla de edición del tipo de publicación.

He leído eliminar el tipo de publicación personalizada del formulario de metabox de taxonomía personalizada y ¿Cómo se elimina un metabox de categoría de taxonomía (jerárquica)? Pero todavía estoy atascado.

La función que estoy usando es:

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' );

Desprefije los post_types y custom_taxonomies, pero eso es todo. He intentado usar el admin_menugancho y el add_meta_boxesgancho recomendado por el Codex. He intentado ambos normaly sidepara el tercer parámetro.

La función anterior se encuentra en un mu-pluginsarchivo debajo de la función que registra los tipos de publicaciones y las taxonomías.


EDITAR: fue un error tipográfico en la función register_taxonomy. Soy una persona horrible. Gracias a todos por la ayuda. ¡Todavía aprendí algunas cosas!

mrwweb
fuente
incluso con 'show_ui' => false?
JMau
1
Todavía quiero la IU en el menú, solo que no cuando edito una publicación.
mrwweb

Respuestas:

35

Si está registrando manualmente su taxonomía personalizada a través de register_taxonomy , puede pasar argumentos para controlar dónde aparece el metabox.

En el siguiente ejemplo, la configuración show_uide falseeliminaría completamente el metabox de la pantalla de edición, la pantalla de edición rápida y el menú de administración. Sin embargo, si se establece show_uique truese puede lograr un control más matizado para entonces usando el show_in_quick_edity meta_box_cbargumentos (ajuste de la tarde a las falsas pieles del METABOX en la pantalla CPT editar como desee).

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,
);
locomo
fuente
Funciona. mantenga el menú de administración y elimine la taxonomía personalizada en forma agregue un nuevo tipo de publicación personalizada. Gracias.
IT Vlogs
¡Gracias! Estaba buscando 'meta_box_cb' => false para ocultarlo en post-new, donde configurarlo como nulo solo muestra la versión predeterminada de wordpress.
Ryan H
Suave y simple.
Travis van der Font
6

Dice que desea eliminar los cuadros de la postpantalla de edición, no la pantalla Tipo de publicación, por lo tanto, suponiendo que debe poder registrar su taxonomía solo para los tipos de publicación a los que desea que se aplique, y evitar esto por completo. El ejemplo en el Codex registra la taxonomía de muestra solo para el booktipo de publicación como:

register_taxonomy( 'genre', array( 'book' ), $args );

Creo que esto es lo que debe hacer, pero no publicó ningún código de registro para los tipos de publicación o las taxonomías.

Si ha creado los meta cuadros usted mismo, es decir, estos cuadros no son los predeterminados, entonces la forma de evitar este problema es registrar los meta cuadros en los ganchos específicos de tipo posterior :

do_action('add_meta_boxes_' . $post_type, $post);

O para seguir el ejemplo anterior:

add_action('add_meta_boxes_book', 'your-box-callback');

Uno de esos enfoques debería resolver esto por usted. No creo que debas usarlo remove_meta_boxen absoluto.

Si está intentando eliminar los meta cuadros del tipo de publicación en el que están registrados, esto funciona (de nuevo siguiendo el ejemplo en el Codex):

function remove_taxonomies_metaboxes() {
    remove_meta_box( 'genrediv', 'book', 'side' );
}
add_action( 'add_meta_boxes_book' , 'remove_taxonomies_metaboxes' );

Estoy bastante seguro de que admin_menues demasiado pronto, pero no lo verifiqué. add_metaboxesTambién funciona para mí. No sé por qué no te funciona.

s_ha_dum
fuente
Perdón por no estar claro. Me refería a la pantalla Tipo de publicación . Cada taxonomía solo se registra en un tipo de publicación personalizada. Intenté usar ese gancho add_meta_boxes_ * brevemente, pero intentaré algunas variaciones al respecto (aunque estoy usando los metaboxes generados automáticamente).
mrwweb
Entonces la última opción en la respuesta debería hacerlo. Lo probé La caja se va. Sin embargo, no puedo decir que entiendo la lógica de tener las taxonomías sin las cajas.
s_ha_dum
(Vea la edición anterior. Fue un error tipográfico. Eso depende de mí ... Gracias por la ayuda). Para responder a su pregunta, estoy mostrando las taxonomías con un campo personalizado avanzado (es una mejor interfaz para los usuarios del sitio).
mrwweb
Su último ejemplo me puso en la dirección correcta, pero esto es lo que funcionó para mí: add_action ('admin_menu', 'remove_taxonomies_metaboxes');
Marcos Buarque
Encontré que esta sintaxis no funciona con la versión actual de WordPress, verifique esta respuesta para encontrar una solución que funcione.
Davey
3

Usando ACF para la gestión de taxonomías personalizadas, los metaboxes predeterminados son innecesarios. He intentado con éxito este código:

      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 );

La prioridad más baja (100) permite que este código funcione también si las taxonomías son creadas por un complemento como CPT-UI.

fabiodipa
fuente
tagsdiv debería tener seguimiento -: remove_meta_box( 'tagsdiv-'.$taxonomy, $post_type, 'side' );
Greg Haygood