it-swarm.com.de

Können mehrere benutzerdefinierte Beitragstypen eine benutzerdefinierte Taxonomie gemeinsam nutzen?

Ich denke darüber nach, eine Drupal-Site in WordPress neu zu erstellen, und beschäftige mich immer noch mit den Unterschieden zwischen den Systemen - insbesondere mit cck/fields und benutzerdefinierten Inhaltstypen sowie den verschiedenen Methoden zur Verwendung der Taxonomie.

Ich möchte wissen, ob zwei benutzerdefinierte Inhaltstypen eine benutzerdefinierte Taxonomie gemeinsam nutzen können. In Drupal kann ich das Posten eines bestimmten Inhaltstyps auf eine Gruppe von Benutzern beschränken und diese Posten können dann eine Taxonomie haben, die nur für einen oder mehrere andere Inhaltstypen (aber nicht für alle Typen) freigegeben ist.

Wenn Sie den Benutzeraspekt außer Acht lassen, der mit Role Scoper möglich erscheint, können Sie dies mit WordPress tun? Ich habe nur benutzerdefinierte Inhaltstypen mit benutzerdefinierter Taxonomie gesehen, aber keine Möglichkeit, eine bestimmte Taxonomie zwischen zwei oder mehr benutzerdefinierten Inhaltstypen zu teilen, ohne sie an zwei Stellen neu zu erstellen oder global über Kategorien/Tags zu aktivieren ...

Danke, -Chad.

19
Chad Dupuis

Aufteilen einer Taxonomie zwischen CPTs

Ich möchte wissen, ob zwei benutzerdefinierte Inhaltstypen eine benutzerdefinierte Taxonomie gemeinsam nutzen können.

Einfach gesagt: Ja, sie können .

Wie man teilt

Wie ich in diesem Blogpost ausführlich erläutere, solltest du immer registrieren benutzerdefinierte Taxonomien und Posttypen so früh wie möglich .

Schließen Sie Ihren Registrierungsprozess in eine Funktion ein, die mit der Standardpriorität an den Hook init angehängt ist.

register_taxonomy(
    'some_custom_tax',
    'some_post_type',
    $array_of_arguments
);
register_post_type(
    'some_post_type',
    [
        'taxonomies' => [ 'some_custom_tax' ],
        // other arguments
    ]
);

Es ist egal, ob Sie die 2 verwendennd Argument für register_taxonomy() oder wenn Sie register_taxonomy_for_object_type() verwenden, tun beide dasselbe: Sie nehmen das Array $GLOBALS['wp_taxonomies'] und weisen ihm das Objekt post type (type) zu.

Wichtige Notiz

Stellen Sie lediglich sicher, dass Sie CT und CPT bei der Registrierung miteinander registrieren. Andernfalls haben Sie bei Abfrage-Hooks keinen Zugriff auf diese Verbindung.

12
kaiser

Aus dem Kodex:

taxonomien

(array) (optional) Ein Array registrierter Taxonomien wie category oder post_tag, die mit diesem Beitragstyp verwendet werden. Dies kann anstelle des direkten Aufrufs von register_taxonomy_for_object_type() verwendet werden. Benutzerdefinierte Taxonomien müssen noch mit register_taxonomy() registriert werden.

Wenn Sie Ihren Beitragstyp registrieren, weisen Sie die unterstützten Taxonomien zu, oder verwenden Sie register_taxonomy_for_object_type() an einer anderen Stelle, um die Taxonomie zum Beitragstyp hinzuzufügen.

Sie können beliebig vielen Beitragstypen eine Taxonomie zuweisen. Taxonomien sind nicht an einen bestimmten Beitragstyp gebunden.

4
s_ha_dum

Ich konnte dies auf einfache Weise erreichen, indem ich eine Reihe aller benutzerdefinierten Post-Typen übergab, die ich für die Taxonomie freigeben möchte. Mein Code sah also folgendermaßen aus:

add_action( 'init', 'build_taxonomies', 0 );
 function build_taxonomies() {
    register_taxonomy( 'some_custom_tax', array('some_post_type_1','some_post_type_2'), array( 'hierarchical' => true, 'label' => 'Custom Tax Title', 'query_var' => true, 'rewrite' => true ) );   
}
2
Kevin Ochieng