Benutzerdefinierte Post Typ URL Rewriting?

Ich habe einen benutzerdefinierten Post-Typ für meine Portfolio-Projekte eingerichtet. Die Haupt-URL dafür befindet sich unter / projects /

Jetzt habe ich auch meinen Posts permalink nach / articles / * / für die Permalink-Struktur eingerichtet. Das heißt, wenn ich ein Portfolio-Projekt anschaue, ändert sich die URL in / articles / projects / project-name /

Ich weiß, dass es eine Möglichkeit geben muss, Permalinks NUR für den benutzerdefinierten Beitragstyp meines Projekts zu schreiben. Aber ich bin nicht vertraut mit der Syntax bei der Deklaration der URL Slug – würde jede Hilfe, die ich bekommen kann, schätzen!

Solutions Collecting From Web of "Benutzerdefinierte Post Typ URL Rewriting?"

Wenn Sie den benutzerdefinierten Post-Typ registrieren, müssen Sie angeben, dass die Rewrite-Regel nicht mit der vorhandenen URL-Struktur vorangestellt werden soll.

Kurz gesagt, dies bedeutet, dass diese Zeile in Ihrem register_post_type Aufruf:

 'rewrite' => array('slug' => 'projects'), 

sollte in das drehen:

 'rewrite' => array('slug' => 'projects','with_front' => false), 

Für weitere Informationen, überprüfen Sie das rewrite Argument aus dem Codex-Eintrag in register_post_type

edit: Achte einfach darauf, dass du nach dem Aktualisieren des Codes die Regeln für das Umschreiben aufrufst, indem du auf Einstellungen> Permalinks klickst. Ansonsten sehen Sie immer noch die alten Links.

Ich hatte dieses Problem buchstäblich vor 3 Tagen, dann bin ich über eine Serie von wp.tutsplus.com gestolpert . Ich habe meinen eigenen Code ausgetauscht, um besser auf Ihre Frage einzugehen, aber das ist es, was ich am Ende der Serie gefunden habe. Bedenken Sie auch, dass dies nicht getestet ist.

 // sets custom post type function my_custom_post_type() { register_post_type('Projects', array( 'label' => 'Projects','description' => '', 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'capability_type' => 'post', 'hierarchical' => false, 'publicly_queryable' => true, 'rewrite' => false, 'query_var' => true, 'has_archive' => true, 'supports' => array('title','editor','excerpt','trackbacks','custom-fields','comments','revisions','thumbnail','author','page-attributes'), 'taxonomies' => array('category','post_tag'), // there are a lot more available arguments, but the above is plenty for now )); } add_action('init', 'my_custom_post_type'); // rewrites custom post type name global $wp_rewrite; $projects_structure = '/projects/%year%/%monthnum%/%day%/%projects%/'; $wp_rewrite->add_rewrite_tag("%projects%", '([^/]+)', "project="); $wp_rewrite->add_permastruct('projects', $projects_structure, false); 

Theoretisch könnten Sie in der URL, die in der Variable $projects_structure gespeichert ist, beliebig viele Daten austauschen. Was genau ist das, was ich am Ende benutzt habe?

Viel Glück, und wie immer – gehen Sie zurück und lassen Sie uns wissen, wie es geklappt hat! 🙂