Benutzerdefinierter Beitragstyp URL Umschreiben?
2 Antworten
- Stimmen
-
- 2012-05-25
Wenn Sie denbenutzerdefinierten Beitragstyp registrieren,müssen Sie angeben,dass der Umschreiberegelnicht die vorhandene URL-Struktur vorangestellt werden soll.
Kurzgesagtbedeutet dies,dass diese Zeilein Ihrem
register_post_type
-Aufruf:'rewrite' => array('slug' => 'projects'),
sollte sichin Folgendes verwandeln:
'rewrite' => array('slug' => 'projects','with_front' => false),
Weitere Informationenfinden Sieim Argument
rewrite
im Codex-Eintrag unterregister_post_type
bearbeiten: Stellen Sieeinfach sicher,dass Sienach dem Aktualisieren des Codes die Umschreiberegeln löschen,indem Sie Einstellungen> Permalinks aufrufen.Andernfalls werden weiterhin die alten Links angezeigt.
When you register the custom post type, you have to specify that the rewrite rule shouldn't be prepended with the existing URL structure.
In short, this means that this line in your
register_post_type
call:'rewrite' => array('slug' => 'projects'),
should turn into this:
'rewrite' => array('slug' => 'projects','with_front' => false),
For more info, check out the
rewrite
argument from the codex entry onregister_post_type
edit: just make sure that, after updating the code, you flush the rewrite rules by visiting Settings > Permalinks. Otherwise you'll still see the old links.
-
genial danke!Um dies zu verdeutlichen,mussich zum Löschen der Regelnnur auf die Seite Einstellungen-> Permalinksgehen und auf "Änderungen speichern" klicken. Richtig?brilliant thank you! Just to clarify, all I need to do for flushing rules is to go to the Settings->Permalinks page and hit "Save Changes", correct?
- 0
- 2012-05-25
- Jake
-
Siemüssennichteinmal Änderungen speichern.Es reicht aus,nur die Seitemit den Permalinks-Einstellungen zu öffnen (dh wenn Ihre .htaccess-Dateibeschreibbarist. Wennnicht,klicken Sie auf Änderungen speichern und kopieren Sie den Code,derin Ihrem .htaccess zurückgegeben wird,manuell).You don't even need to save changes. It's enough just to open the Permalinks settings page (that is, if your .htaccess file is writable. If not, press save changes and manually copy the code it returns in your .htaccess)
- 4
- 2012-05-25
- 0x61696f
-
Das scheintbei mirnicht zufunktionieren.Meine Projektbeiträgegehen weiterhin zu "example.com/projects/title-of-post".Ich habe auch die Permalinks-Seitebesucht.Was könnte das verursachen?Esgibt keine Umschreiberegelnin meinem "htaccess".This doesn't seem to work for me. My projects posts are still going to `example.com/projects/title-of-post`. I visited the Permalinks page too. What could be causing this? There aren't any rewrite rules in my `htaccess`.
- 2
- 2015-01-25
- Desi
-
Wow,danke das war derfehlende Teil!Der Besuch der Permalink-Seite hatnichtfunktioniert,abernur das Speichern der aktuellen Permalink-Einstellungen hatfunktioniert :)Wow, thanks that was the missing part! Visiting the permalinks page did not work, but just SAVING the current permalink settings worked :)
- 1
- 2019-02-28
- Alexander Taubenkorb
-
Ich änderteimmer wieder Dinge,ohne die Umschreiberegeln zu löschen.Dankefür den Tipp!I kept on changing things without flushing the rewrite rules. Thanks for the tip!
- 1
- 2019-11-14
- Tan-007
-
- 2012-05-25
Ich hatte dieses Problembuchstäblich vor 3 Tagen undbin dann aufeine Serie unter wp.tutsplus.com gestoßen. Ich habemeinen eigenen Code ausgetauscht,um Ihre Fragebesser zubeantworten,aber dasistes,woraufichnach dem Folgen der Seriegekommenbin. Beachten Sie auch,dass diesnichtgetestet wurde.
// 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 alles,was Sie wollen,in der URL austauschen,diein der Variablen
$projects_structure
gespeichertist. Wasgibt es,wasich letztendlich verwendet habe.Viel Glück und wieimmer - kommen Sie unbedingt zurück und lassen Sie uns wissen,wieesfunktioniert hat! :)
I had this problem literally 3 days ago, then I stumbled across a series over at wp.tutsplus.com. I swapped my own code out to accommodate your question better, but this is what I ended up with after following the series. Also, keep in mind that this is untested.
// 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);
Theoretically, you could swap out whatever you want in the URL stored in the
$projects_structure
variable, what is there is just what I ended up using.Good luck, and as always - make sure to come back and let us know how it worked out! :)
-
Antworten,dienur aus Linksbestehen,werdenim Allgemeinen alsnicht hilfreich angesehen,da diese Ressourcenin Zukunftnichtmehrexistieren können (und wahrscheinlich auch werden).Fassen Sie den Inhalt zusammen.Answers that are just composed of links are generally considered unhelpful as those resources can (and probably will) cease to exist in the future. Summarize the content.
- 1
- 2012-05-25
- chrisguitarguy
-
Fairgenug,ich werde aneiner richtigen Überarbeitung arbeiten.Fair enough, I'll work on a proper revision.
- 0
- 2012-05-25
- cmegown
-
Dortenthältmeine Antwortjetzt ähnlichen Code wie Arbeitscode,denichin einer Produktionsumgebung habe,in dereine benutzerdefinierte URL vom Beitragstyperfolgreichneugeschrieben wurde.Hoffe,eserweist sich als hilfreicher!There, now my answer contains similar code to working code that I have in a production environment that successfully rewrites a custom post type URL. Hope it proves to be more helpful!
- 11
- 2012-05-25
- cmegown
Ich habeeinen benutzerdefinierten Beitragstypfürmeine Portfolio-Projekteeingerichtet.Die Haupt-URL hierfürbefindet sich unter
/projects/
Jetzt habeich auchmeine Blogpostspermalink auf
/articles/*/
für die Permalink-Struktureingerichtet.Das heißt,wennichein Portfolio-Projekt ansehe,ändert sich die URLin/articles/projects/project-name/
Ich weiß,dasseseine Möglichkeitgeben muss,Permalinks nur für denbenutzerdefinierten Beitragstypmeines Projektsneu zu schreiben.Aberichbin mit der Syntaxbeim Deklarieren des URL-Slugsnicht vertraut - würdemich überjede Hilfefreuen,dieichbekommen kann!