He registrado una taxonomía personalizada en WordPress y no puedo entender por qué no se muestra en las publicaciones estándar de WordPress, ya que se introdujo Gutenberg. Lo que quiero decir con esto es que no se muestra en la barra lateral del documento al agregar o editar una publicación. Lo mismo ocurre con las ‘Categorías’ y las ‘Etiquetas’, que obviamente son taxonomías estándar.
Me he asegurado de que ‘show_in_rest’ => true está presente en el registro de taxonomía, pero no ha hecho ninguna diferencia.
Parece que se están registrando parcialmente, ya que aparecen en ‘Publicaciones’ en el menú principal de la izquierda, lo que sugiere que podría estar relacionado con Gutenberg.
¿Algunas ideas?
// Register taxonomy
add_action( 'init', 'register_taxonomy_articles_element' );
function register_taxonomy_articles_element() {
$labels = array(
'name' => _x( 'Elements', 'articles_element' ),
'singular_name' => _x( 'Element', 'articles_element' ),
'search_items' => _x( 'Search Elements', 'articles_element' ),
'popular_items' => _x( 'Popular Elements', 'articles_element' ),
'all_items' => _x( 'All Elements', 'articles_element' ),
'parent_item' => _x( 'Parent Element', 'articles_element' ),
'parent_item_colon' => _x( 'Parent Element:', 'articles_element' ),
'edit_item' => _x( 'Edit Element', 'articles_element' ),
'update_item' => _x( 'Update Element', 'articles_element' ),
'add_new_item' => _x( 'Add New Element', 'articles_element' ),
'not_found' => _x( 'No Elements found', 'articles_element' ),
'new_item_element' => _x( 'New Element', 'articles_element' ),
'separate_items_with_commas' => _x( 'Separate Elements with commas', 'articles_element' ),
'add_or_remove_items' => _x( 'Add or remove elements', 'articles_element' ),
'choose_from_most_used' => _x( 'Choose from the most used elements', 'articles_element' ),
'menu_name' => _x( 'Elements', 'articles_element' )
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_in_nav_menus' => true,
'show_in_rest' => true,
'show_ui' => true,
'show_tagcloud' => true,
'hierarchical' => true,
'rewrite' => true,
'query_var' => true
);
register_taxonomy( 'element', array('post'), $args );
}
Si alguien todavía tiene problemas para mostrar la taxonomía o el editor de Gutenberg, agregue 'show_in_rest' => true,
en tanto tipos de publicaciones personalizadas como taxonomía argumentos
Dado que Gutenberg funciona en función de la API REST, debe activar la compatibilidad con la API REST para cualquier tipo de publicación personalizada y taxonomía. Necesitas agregar una clave adicional show_in_rest = true
para usted $args
formación. Su código completo debería verse así:
$args = array(
'labels' => $labels,
'public' => true,
'show_in_rest' => true, // add support for Gutenberg editor
'publicly_queryable' => true,
'show_in_nav_menus' => true,
'show_in_rest' => true,
'show_ui' => true,
'show_tagcloud' => true,
'hierarchical' => true,
'rewrite' => true,
'query_var' => true
);
-
Hola, @artem, gracias por esto, pero como puede ver en mi pregunta y código, ¿esto ya está implementado?
– dungey_140
1 mayo 2019 a las 13:15
-
Gracias por esta solución, no estaba al tanto de
'show_in_rest' => true,
– Marko Bajlovic
15 de agosto de 2019 a las 15:53
Parece que después de mucha investigación, el problema no estaba relacionado con el código anterior (que es correcto). El problema estaba en una segunda taxonomía personalizada, denominada ‘tipo’. Resulta que WordPress contiene una serie de ‘términos reservados‘, de los cuales uno es ‘tipo’. Una vez que se cambió el nombre de esta taxonomía, ambas taxonomías funcionan correctamente, incluso con Gutenberg.
-
‘show_in_rest’ => el parámetro verdadero agregado en ambos argumentos de register_post_type y register_taxonomy y el slug de register_taxonomy no son términos reservados de wordpress. Pero la taxonomía no está visible en la edición de la publicación. El metabox de categoría muestra solo la categoría predeterminada en él. Podrías ayudarme ?
– Dobladillos
21 oct 2021 a las 8:35
El problema al que se enfrenta podría resolverse cambiando su 'rewrite'
atributo en la lista de true
dentro array( 'slug' => 'your-taxonomy-slug' )
entonces lo nuevo 'rewrite'
debería verse como 'rewrite' => array( 'slug' => 'your-taxonomy-slug' )
y puedes poner cualquier babosa en lugar de your-taxonomy-slug
.
No entiendo completamente la razón por la que esto debería funcionar, pero parece que el editor de bloques usa la API Rest que, por alguna razón, no puede manejar la taxonomía sin reescribir el slug. algo es extraño allí porque todas las demás funciones funcionan bien, solo está dentro de Gutenberg solo por alguna razón.
Si esto no funcionó, podría ser un tema o un complemento en conflicto … intente desactivar cosas para ver qué causa el conflicto.