Creează categorie doar pentru tipul personalizat de postare

16 nov. 2014, 21:51:02
Vizualizări: 55.4K
Voturi: 16

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?

0
Toate răspunsurile la întrebare 1
5
22

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' );
16 nov. 2014 22:09:22
Comentarii

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.

user1048676 user1048676
16 nov. 2014 22:20:17

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

SkyShab SkyShab
16 nov. 2014 22:24:17

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.

user1048676 user1048676
16 nov. 2014 22:28:19

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.

SkyShab SkyShab
16 nov. 2014 22:37:03

Pentru a afișa taxonomia personalizată în editorul de pagini Gutenberg, adaugă 'show_in_rest' => true la opțiunile register_taxonomy.

Fabian von Ellerts Fabian von Ellerts
15 nov. 2019 12:45:36