Kategorie nur für benutzerdefinierten Beitragstyp erstellen

11

Alles in allem erstelle ich meinen eigenen Beitragstyp mit dem folgenden Code:

add_action( 'init', 'create_team_post_type' );
function create_team_post_type() {
  register_post_type( 'team',
    array(
      'labels' => array(
        'name' => __( 'Teams' ),
        'singular_name' => __( 'Team' )
      ),
        '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')
    )
  );
}

Darin erlaube ich eine Kategorie. Wenn ich dazu auf die Kategorie klicke, werden die Kategorien angezeigt, die bereits in meinen Beitragskategorien aufgeführt sind. Ich möchte nur die Kategorien für diesen benutzerdefinierten Beitragstyp anzeigen. Wenn ich dem benutzerdefinierten Beitragstyp eine neue Kategorie hinzufüge, soll sie nur für diesen benutzerdefinierten Beitragstyp gelten. Wie mache ich das?

user1048676
quelle

Antworten:

15

Ich würde sagen, dass Sie auch eine benutzerdefinierte Taxonomie erstellen müssen, wenn Sie möchten, dass sie auf den einen Beitragstyp beschränkt ist. "Kategorien" ist standardmäßig bereits mit Posts verbunden.

Aus dem WordPress-Codex

function people_init() {
    // create a new taxonomy
    register_taxonomy(
        'people',
        'post',
        array(
            'label' => __( 'People' ),
            'rewrite' => array( 'slug' => 'person' ),
            'capabilities' => array(
                'assign_terms' => 'edit_guides',
                'edit_terms' => 'publish_guides'
            )
        )
    );
}
add_action( 'init', 'people_init' );

Wenn Sie es also "Team-Kategorie" nennen würden, würden Sie dies im Array "Taxonomien" in Ihrem Beitragstyp verwenden.

Hier ist ein genaueres Beispiel:

function tr_create_my_taxonomy() {

    register_taxonomy(
        'team-category',
        'team',
        array(
            'label' => __( 'Category' ),
            'rewrite' => array( 'slug' => 'team-category' ),
            'hierarchical' => true,
        )
    );
}
add_action( 'init', 'tr_create_my_taxonomy' );
SkyShab
quelle
Das sieht gut aus. Wie zeige ich meine benutzerdefinierte Taxonomie im benutzerdefinierten Beitrag an? Ich habe versucht, zu zu wechseln 'taxonomies' => array('category'), 'taxonomies' => array('people')aber diese Kategorien werden nicht angezeigt.
user1048676
Stellen Sie sicher, dass Sie im Beispielcode "Beitrag" in "Team" ändern, wenn Sie möchten, dass er dort angezeigt wird.
SkyShab
Ich denke, ich sollte klarer sein. Es wird dort angezeigt, aber wenn ich einen neuen Beitrag zum benutzerdefinierten Beitragstyp hinzufüge, möchte ich, dass er wie beim Standardbeitragstyp als Kontrollkästchen angezeigt wird. Im Moment zeigt es mir nur ein Feld wie die Tags anstelle der benutzerdefinierten Kategorien.
user1048676
1
Wenn Sie möchten, dass es sich um einen Kategoriestil handelt, setzen Sie die Hierarchie auf true. Die Standardeinstellung false zeigt den Tag-Stil an. Ersteres habe ich meinem neuesten Codebeispiel hinzugefügt.
SkyShab
Fügen Sie 'show_in_rest' => trueden register_taxonomyOptionen hinzu , um die benutzerdefinierte Taxonomie in der Gutenberg-Seitenbearbeitung anzuzeigen .
Fabian von Ellerts