Creează categorie doar pentru tipul personalizat de postare
Salut, Creez propriul tip de postare folosind următorul cod:
add_action( 'init', 'create_team_post_type' );
function create_team_post_type() {
register_post_type( 'team',
array(
'labels' => array(
'name' => __( 'Echipe' ),
'singular_name' => __( 'Echipă' )
),
'publicly_queryable' => true,
'show_ui' => true,
'query_var' => true,
'rewrite' => true,
'capability_type' => 'post',
'hierarchical' => false,
'menu_position' => null,
'taxonomies' => array('category'),
'supports' => array('title','editor','thumbnail')
)
);
}
În acest cod permit o categorie. Când dau click pe categorie pentru aceasta, văd categoriile deja listate din categoriile mele de postări. Aș dori să afișez doar categoriile pentru acest tip de postare personalizată. În plus, când adaug o nouă categorie la tipul de postare personalizată, vreau să se aplice doar acestui tip de postare personalizată. Cum pot realiza acest lucru?

Aș spune că trebuie să creezi și o taxonomie personalizată dacă vrei să fie limitată la un singur tip de post. "Categorii" este deja conectat implicit la postări.
Din WordPress Codex
function people_init() {
// creează o nouă taxonomie
register_taxonomy(
'people',
'post',
array(
'label' => __( 'Persoane' ),
'rewrite' => array( 'slug' => 'persoana' ),
'capabilities' => array(
'assign_terms' => 'edit_guides',
'edit_terms' => 'publish_guides'
)
)
);
}
add_action( 'init', 'people_init' );
Deci, dacă ai numit-o "team-category", ai folosi acest nume în array-ul 'taxonomies' din tipul tău de post.
Iată un exemplu mai specific:
function tr_create_my_taxonomy() {
register_taxonomy(
'team-category',
'team',
array(
'label' => __( 'Categorie' ),
'rewrite' => array( 'slug' => 'team-category' ),
'hierarchical' => true,
)
);
}
add_action( 'init', 'tr_create_my_taxonomy' );

Arată bine. Cum pot afișa taxonomia personalizată în postarea personalizată? Am încercat să schimb 'taxonomies' => array('category')
în 'taxonomies' => array('people')
dar nu-mi afișează acele categorii.

Asigură-te că schimbi 'post' în 'team' în codul exemplu dacă acolo vrei să apară.

Cred că ar trebui să fiu mai clar. Apar acolo dar când adaug o postare nouă în tipul de postare personalizată, aș dori să apară ca niște checkbox-uri ca la tipul standard de postare. Acum îmi arată doar o casetă ca la etichete în loc de categoriile personalizate.

Dacă dorești să fie 'în stil de categorii', atunci setează hierarchical la true. Valoarea implicită, false, o afișează 'în stil de etichete'. Am adăugat prima variantă în ultimul meu exemplu de cod.
