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

Ich überlege mir, eine Drupal-Site in WordPress neu aufzubauen und wickle immer noch den Kopf über die Unterschiede zwischen den Systemen – insbesondere Cck / Felder und benutzerdefinierte Inhaltstypen und die verschiedenen Möglichkeiten, Taxonomie zu verwenden.

Ich würde gerne wissen, ob zwei benutzerdefinierte Inhaltstypen eine benutzerdefinierte Taxonomie teilen können. In drupal kann ich das Posten eines bestimmten Inhaltstyps auf eine Gruppe von Benutzern beschränken und dann kann diese Buchung eine Taxonomie haben, die nur mit einem oder mehreren anderen Inhaltstypen (aber nicht allen Typen) geteilt wird.

Lassen Sie den Benutzeraspekt, der mit dem Rollenscanner möglich erscheint, mit WordPress? Ich habe nur einen benutzerdefinierten Inhaltstyp mit angepasster 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.

Solutions Collecting From Web of "Können mehrere benutzerdefinierte Beitragstypen eine benutzerdefinierte Taxonomie gemeinsam nutzen?"

Teilen einer Taxonomie zwischen CPTs

Ich würde gerne wissen, ob zwei benutzerdefinierte Inhaltstypen eine benutzerdefinierte Taxonomie teilen können.

Einfach gesagt: Ja, das können sie .

Wie zu teilen

Wie ich im Detail in diesem Blogpost ausführe , sollten Sie benutzerdefinierte Taxonomien und Post-Typen immer so früh wie möglich registrieren .

Wickeln Sie Ihren Registrierungsprozess in eine function ein, die an den init Hook mit der Standardpriorität 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 spielt keine Rolle, ob Sie das zweite Argument für register_taxonomy() oder ob Sie register_taxonomy_for_object_type() , da beide dasselbe tun: Sie nehmen das Array $GLOBALS['wp_taxonomies'] und weisen ihm das Objekt vom Typ post (type) zu ).

Wichtige Notiz

Stellen Sie nur sicher, dass Sie den CT und den CPT bei der Registrierung registrieren. Andernfalls haben Sie während Abfrage-Hooks keinen Zugriff auf diese Verbindung.

Aus dem Codex:

Taxonomien

(Array) (optional) Ein Array registrierter Taxonomien wie category oder post_tag, das mit diesem Post-Typ verwendet wird. Dies kann anstelle des direkten Aufrufs von register_taxonomy_for_object_type() werden. Benutzerdefinierte Taxonomien müssen weiterhin mit register_taxonomy() .

Wenn Sie Ihren Post-Typ registrieren, ordnen Sie die von ihm unterstützten Taxonomien zu oder verwenden Sie register_taxonomy_for_object_type() an einem anderen Punkt, um die Taxonomie dem Post-Typ hinzuzufügen.

Sie können beliebig viele Post-Typen einer Taxonomie zuordnen. Taxonomien sind nicht an einen bestimmten Posttyp gebunden.

Ich konnte dies leicht erreichen, indem ich ein Array aller benutzerdefinierten Post-Typen übergab, die ich mit der Taxonomie teilen möchte. Also sah mein Code so 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 ) ); }