Termenii de taxonomie personalizată nu apar în lista Editorului Gutenberg
Am creat o taxonomie personalizată pe care am asociat-o cu un CPT (Custom Post Type). Ambele apar în panoul de administrare, problema este că atunci când adaug conținut și vreau să aleg un termen din lista taxonomiei personalizate, nu apar valori (nicio listă, nici checkbox...). Folosesc WordPress 5.1. Iată codul adăugat în functions.php:
function type_custom_taxonomy() {
$labels = array(
'name' => _x( 'Types', 'taxonomy general name' ), // Numele general al taxonomiei
'singular_name' => _x( 'Type', 'taxonomy singular name' ), // Numele singular al taxonomiei
'menu_name' => __( 'Types' ), // Numele din meniu
);
register_taxonomy('types',array('action'), array(
'labels' => $labels,
'hierarchical' => true, // Taxonomie ierarhică
'public' => true, // Vizibilă public
'show_ui' => true, // Afișează interfața de administrare
'show_admin_column' => true, // Afișează coloana în administrare
'show_in_rest' => true, // Disponibilă în REST API
'show_tagcloud' => false, // Ascunde norul de taguri
));
}
add_action( 'init', 'type_custom_taxonomy', 0 ); // Inițializează taxonomia
// CPT (Custom Post Type)
function action_post_type() {
register_post_type( 'action',
array(
'labels' => array(
'name' => __( 'Actions' ), // Numele plural al CPT
'singular_name' => __( 'Action' ) // Numele singular al CPT
),
'public' => true, // Post type public
'has_archive' => true, // Permite arhive
'show_in_rest' => true, // Disponibil în REST API
'supports' => array('title', 'editor','thumbnail'), // Funcționalități suportate
'taxonomies' => array('types') // Taxonomii asociate
)
);
}
add_action( 'init', 'action_post_type' ); // Inițializează post type-ul

Am întâmpinat aceeași problemă ca și tine și am rezolvat-o în felul următor:
Trebuie să adaugi 'show_in_rest' => true,
atât pentru post_type cât și pentru taxonomii în ultima linie a array-ului, astfel:
register_post_type(
'portfolio',
array(
'labels' => $labels,
'exclude_from_search' => false,
'has_archive' => true,
'public' => true,
'publicly_queryable' => false,
'rewrite' => false,
'can_export' => true,
'show_in_nav_menus' => true,
'supports' => array('title', 'editor', 'thumbnail', 'comments', 'page-attributes','excerpt'),
'show_in_rest' =>true,
)
);
Pentru Taxonomie:
register_taxonomy(
'portfoliocat',
'portfolio',
array(
'hierarchical' => true,
'show_in_nav_menus' => true,
'labels' =>array(),
'query_var' => true,
'rewrite' => array('slug' => 'portfoliocat'),
'show_in_rest' => true,
)
);

Am avut asta în CPT-ul meu, dar nu și în înregistrarea taxonomiei, asta a rezolvat problema pentru mine.

vrei să spui că trebuie să adaug 'rewrite' => array( 'slug' => 'type' ), Nu a funcționat pentru mine, Poți să-mi arăți codul, te rog?

Nu, nu am încercat să folosesc rewrite dar am schimbat slug-ul în apelul register_taxonomy astfel: register_taxonomy( 'kt-types', array('action'), $args). Am încercat local și funcționează pentru mine.

Da, funcționează când schimb types în action-types. Mulțumesc mult mahmood. Poți să scrii răspunsul tău ca soluție ca să-l pot accepta

Mă bucur că funcționează. Am adăugat deja răspunsul meu ca soluție. Dorești să îl explic mai detaliat?

Pot reproduce și eu această problemă. Adăugarea show_in_rest
în funcția register_taxonomy
, așa cum sugerează mulți, ar fi în mod normal răspunsul corect, dar nu este soluția completă în cazul tău. Acest lucru se întâmplă pentru că endpoint-ul REST types
este deja utilizat de WordPress însuși. https://example.com/wp-json/wp/v2/types
va returna tipurile de postări înregistrate și, prin urmare, Gutenberg nu le înțelege. Vezi https://developer.wordpress.org/rest-api/reference/post-types/
Astfel, schimbarea slug-ului este probabil cea mai bună soluție. Dacă site-ul tău este live, atunci ar trebui să iei în considerare unele reguli de rescriere pentru a nu afecta SEO-ul.
Totuși, chiar dacă schimbi slug-ul, trebuie să adaugi și show_in_rest
atunci când folosești Gutenberg.

Presupun că problema este cauzată de priorități...
Ambele acțiuni ale tale folosesc aceeași prioritate. Deci dacă funcția type_custom_taxonomy
este apelată prima, atunci tipul de postare action
nu există încă în acel moment.
Aș încerca ceva de genul acesta:
function action_post_type() {
register_post_type( 'action',
array(
'labels' => array(
'name' => __( 'Acțiuni' ),
'singular_name' => __( 'Acțiune' )
),
'public' => true,
'has_archive' => true,
'show_in_rest' => true,
'supports' => array('title', 'editor','thumbnail'),
)
);
$labels = array(
'name' => _x( 'Tipuri', 'taxonomy general name' ),
'singular_name' => _x( 'Tip', 'taxonomy singular name' ),
'menu_name' => __( 'Tipuri' ),
);
register_taxonomy('types',array('action'), array(
'labels' => $labels,
'hierarchical' => true,
'public' => true,
'show_ui' => true,
'show_admin_column' => true,
'show_in_rest' => true,
'show_tagcloud' => false,
));
}
add_action( 'init', 'action_post_type' );
În acest fel poți fi sigur că CPT-ul este înregistrat înaintea taxonomiei și poți atribui acea taxonomie acelui CPT.

da, aceasta este problema pe care o am, nu afișează lista de termeni pe care i-am adăugat deja. Deci da, pot adăuga un termen nou, dar dacă vreau să modific CPT-ul meu, nu am lista termenilor mei

Am încercat codul tău pe configurația mea și funcționează fără probleme. Vezi aici. Poate că altă parte din codul tău creează această problemă.

Pot să reproduc aceeași problemă.
El vede Tab-ul, dar fără intrări. Deci show_in_rest
nu este soluția și a fost deja configurat corect.
Problema este un Răspuns Rest-API gol. Acest lucru nu se întâmplă la o instalare curată.
Mergi (pe o instanță locală) prin pluginurile tale, dezactivează-le unul câte unul.
Verifică http://domain.test/wp-json/wp/v2/taxonomyname
într-o fereastră separată pentru a vedea dacă afectează rezultatul tău.
În cazul meu, a fost pluginul "User Access Manager" cu setarea implicită "Taxonomies settings"->Hide empty Taxonomies setată pe da!
În acest caz, selectează taxonomia ta sub "Object type" și setează opțiunea pe Nu.

În caz de problemă cu UAM: https://wordpress.org/support/topic/hide-empty-taxonomy-option-is-breaking-gutenberg-tabs/
