Ändern Sie den Namen des benutzerdefinierten Post-Typ-Archivs

Ich habe einen benutzerdefinierten acme_reviews . Ich habe es so benannt, wie es in Tutorials vorgeschlagen wurde, um zukünftige Konflikte zu vermeiden. Aber ich möchte, dass seine Archivseite einfach acme.com/reviews , nicht acme.com/acme_reviews . Wie erreiche ich das? Das ist mein Code:

 function create_reviews_post_type() { register_post_type('acme_reviews', array( 'labels' => array( 'name' => __('Reviews'), 'singular_name' => __('Review') ), 'menu_position' => 5, 'public' => true, 'has_archive' => true, ) ); } add_action('init', 'create_reviews_post_type'); 

Solutions Collecting From Web of "Ändern Sie den Namen des benutzerdefinierten Post-Typ-Archivs"

Die Option register_post_type has_archive akzeptiert auch eine Zeichenfolge. Diese Zeichenfolge wird für die Archive verwendet. Sehen Sie sich die Änderungen im folgenden Code an:

 function create_reviews_post_type() { register_post_type('acme_reviews', array( 'labels' => array( 'name' => __('Reviews'), 'singular_name' => __('Review') ), 'menu_position' => 5, 'public' => true, 'has_archive' => 'reviews', ); } add_action('init', 'create_reviews_post_type'); 

Nach dem Codex (und was für mich funktioniert!) Ist es einfach eine Neuschreibung im Array zu verwenden. Beide Optionen funktionieren, aber WordPress schlägt vor, das Neuschreiben zu verwenden. Unten ist das Zitat direkt aus dem Codex:

has_archive (boolean oder string) (optional) Aktiviert Post-Typ-Archive. Verwendet $ post_type standardmäßig als Archiv-Slug.

Standard: falsch

Hinweis: Generiert die richtigen Umschreibungsregeln, wenn das Umschreiben aktiviert ist. Verwenden Sie auch Umschreiben, um den verwendeten Slug zu ändern .

VERGEWISSERN SIE SICH, DIE PERMALINK-REGELN ZU SPÜLEN. Wenn dies in einem Plugin ist, empfehle ich immer ein init hinzuzufügen, das die Regeln löscht, wenn das Plugin aktiviert wird.

Hier ist der Code, beachten Sie, dass ich den functionsnamen auch aus den gleichen Gründen angepasst habe, wie Sie den Postnamen selbst anpassen.

 function create_acme_reviews_post_type() { //namespaced your function too.. register_post_type('acme_reviews', array( 'labels' => array( 'name' => __('Reviews'), 'singular_name' => __('Review') ), 'menu_position' => 5, 'public' => true, 'has_archive' => true, 'rewrite' => array( 'slug' => 'reviews' ), //changes permalink structure ) ); } add_action('init', 'create_acme_reviews_post_type'); //namespaced function call too..