Benötigen Sie Hilfe bei benutzerfreundlichen URLs in Wordpress
-
-
@Steven: Ist diesein benutzerdefinierter Beitragstypmit der Einstellung "Umschreiben"?(Bittefügen Sie den Code "register_post_type" hinzu,falls dies der Fallist.) Wenn Sieeinen regulären Blog-Beitragerstellen,wie lautet seine Adresse?@Steven: Is this a custom post type with a `rewrite` setting? (Please add the `register_post_type` code if it is.) If you create a regular blog post, what is its address?
- 0
- 2010-11-02
- Jan Fabry
-
@Steve - Ah,ich sehe,du hast hiergefragt.Großartig!@Steve - Ah, I see you did ask over here. Great!
- 0
- 2010-11-02
- MikeSchinkel
-
Diesist keinbenutzerdefinierter Beitragstyp.Esistnureine Vorlage,die Daten auseiner Datenbankbasierend auf Informationen abruft,die von $ _GET () übergeben wurden.This is not a custom post type. It's just a template that retrieves data from a DB based on info passed by $_GET().
- 0
- 2010-11-02
- Steven
-
@Steven: OK,Siemöchten wissen,wie Sie URLs wie "/designer/designer_A","/designer/designer_B",...erhalten,die von derselben Vorlage verarbeitet werden und dann über die URLproblemlos auf den Designernamen zugreifen können?Diesist danneine Frage zu [Hinzufügen Ihrereigenen Umschreiberegel] (http://wordpress.stackexchange.com/questions/3206/custom-post-type-rewrite-rule-for-author-paging/3218#3218)?@Steven: OK, so you want to know how to get URL's like `/designer/designer_A`, `/designer/designer_B`, ... handled by the same template, that can then access the designer name from the URL easily? This is then a question about [adding your own rewrite rule](http://wordpress.stackexchange.com/questions/3206/custom-post-type-rewrite-rule-for-author-paging/3218#3218)?
- 0
- 2010-11-02
- Jan Fabry
-
Dasist richtig.Ich verwendejedoch keinenbenutzerdefinierten Beitragstyp.Siehe zusätzliche Informationen oben.That's correct. But I'm not using Custom Post Type. See added info above.
- 0
- 2010-11-02
- Steven
-
@Steven: Aber Ihre `/designer/` URL,ist dasnureine normale WordPress-Seite,diemit einer Vorlage verknüpftist,mit der dasbenutzerdefinierte PHPfunktioniert?(Und wenn Sie Ihrer Antwort @Jan hinzufügen,erhalteicheine Benachrichtigung.)@Steven: But your `/designer/` URL, is that just a regular WordPress page linked to a template that does the custom PHP work? (And if you add @Jan to your reply, I get a notification.)
- 0
- 2010-11-02
- Jan Fabry
-
@ Jan: Ah,also hat @tatsächlicheine Funktion.Gut zu wissen!:) Ja, `/designer/`isteine Seitein WordPress,dieeine benutzerdefinierte Vorlage verwendet.@Jan: Ah, so @ actually has a function. Nice to know! :) Yes, `/designer/` is a page in wordress using a custom template.
- 0
- 2010-11-02
- Steven
-
@Steve - Ichempfehle Ihnen dringend,diebenutzerdefinierten Beitragstypen zu überdenken.Sie versuchen,das Radneu zuerfinden,undin WordPressgibt esbereitseinen wirklichguten Radsatz.Sie sagen,Sie können keine CPTs verwenden.Denken Sie darübernach,hierin WordPress Answerseine weitere Frage zu stellen,in der Siegefragt werden,wie Sie die Straßensperre umgehen können,die Siemit CPTs wahrnehmen.Ich wette,Sie werden überrascht sein,wieeinfach die Lösung sein wird.Erstellen Sie *beide *eine * "Marke" * CPT undeine * "Galerie" * CPT und verknüpfen Sie sie dannmiteinander (esgibt verschiedene Möglichkeiten,dies zutun ...)@Steve - I strongly recommend you reconsider Custom Post Types. You are trying to reinvent the wheel and a really got set of wheels already exist in WordPress. You say you can't use CPTs; will you consider maybe asking another question here on WordPress Answers that asks how to get around the roadblock you perceive with CPTs? I'll bet you'll be surprised how easy the solution will be. Create *both* a *"Brand"* CPT and a *"Gallery"* CPT then link them together (there are several ways to do that...)
- 1
- 2010-11-03
- MikeSchinkel
-
2 Antworten
- Stimmen
-
- 2010-11-02
Ich weiß selbstnicht viel über die Umschreiberegeln (oder wusstees auchnicht) (aberes scheint niemandtut ),aberbasierend aufeinigen anderen Antworten hier habeich dies zum Laufengebracht. Wirfügeneine neue Umschreiberegel hinzu,diemit
designer/designer_name/
übereinstimmt. Wir "leeren" die Umschreiberegeln,damit siein der Datenbankgespeichert werden. Stellen Siejedoch sicher,dass Sie diesnureinmaltun,da dieseine teure Operationist. Jetzt richten wirein Musterein,dasmit unserer Seite übereinstimmt,und speichern den zusätzlichen Teilin der Abfragevariablendesigner_name
. Da WordPressnicht weiß,dasses diese Variablebetrachtenmuss,schließen wir uns dem Filterquery_vars
an und weisenes an,diesebenfalls zubetrachten.Jetzt können wirin der Themendatei
page-designer.php
get_query_var ('designer_name')
ausführen underhalten den Designernamen. Wenn Sie zusätzliche Dinge wie Paging (designer/designer_name/page/2
)möchten,müssen Sieeine zusätzliche Umschreiberegelfür diese (oder Feeds oder was auchimmermitdesigner/designer_name
). Aber diegrundlegenden Dinge solltenfunktionieren. & lt ;?php /* Name des Plugins: WPA 3537 Plugin-URI: http://wordpress.stackexchange.com/questions/3537/need-help-with-friendly-urls-in-wordpress Beschreibung: Benötigen Sie Hilfebei benutzerfreundlichen URLsin Wordpress? Version: 1.0 Verfasser: Jan Fabry */ register_activation_hook (__ FILE__,'wpa3537_flush_rules'); Funktion wpa3537_flush_rules () { add_rewrite_rule ('designer/([^/] +)','index.php?pagename=designer & amp; designer_name=$entspricht [1]','top'); flush_rewrite_rules (false); }} add_filter ('query_vars','wpa3537_query_vars'); Funktion wpa3537_query_vars ($ query_vars) { $ query_vars []='designer_name'; return $ query_vars; }}
I don't know (or didn't know) much about the rewrite rules myself (but it seems nobody does), but based on some other answers here, I got this to work. We add a new rewrite rule that matches
designers/designer_name/
. We "flush" the rewrite rules so they get saved to the database, but make sure to do this only once, since it is an expensive operation. Now, we set up a pattern that will match our page and save the extra part in thedesigner_name
query variable. Since WordPress does not know it must look at this variable, we hook into thequery_vars
filter and tell it to look at that too.Now, in the
page-designers.php
theme file, we can doget_query_var('designer_name')
and it will give you the designer name. If you want extra stuff like paging (designer/designer_name/page/2
), you need to add an extra rewrite rule for that (or feeds, or whatever that starts withdesigner/designer_name
). But the basic stuff should work.<?php /* Plugin Name: WPA 3537 Plugin URI: http://wordpress.stackexchange.com/questions/3537/need-help-with-friendly-urls-in-wordpress Description: Need help with friendly URL's in Wordpress Version: 1.0 Author: Jan Fabry */ register_activation_hook(__FILE__, 'wpa3537_flush_rules'); function wpa3537_flush_rules() { add_rewrite_rule('designers/([^/]+)', 'index.php?pagename=designers&designer_name=$matches[1]', 'top'); flush_rewrite_rules(false); } add_filter('query_vars', 'wpa3537_query_vars'); function wpa3537_query_vars($query_vars) { $query_vars[] = 'designer_name'; return $query_vars; }
-
Ja,das Umschreiben von URLsin WordPressisteine schwarze Kunst.Manmuss vorsichtig sein,wennman übt,damitmannicht auf die dunkle Seite übergeht undirreversibel verrückt wird.Yes, WordPress' URL rewriting is a black art. One must be careful when practicing lest one cross over to the dark side and be driven irreversibly insane.
- 4
- 2010-11-03
- MikeSchinkel
-
@Mike: Ich warfasziniert davon (muss die Halloween-Zeit sein) und schrieb [einen Rewrite Rule Analyzer] (http://wordpress.stackexchange.com/questions/3606/a-tool-to-analyze-rewrite-rules)/3608 # 3608) als Spurmeiner Entdeckungenim Rewrite-Land.@Mike: I got intrigued by it (must be the Halloween time), and wrote [a rewrite rule analyzer](http://wordpress.stackexchange.com/questions/3606/a-tool-to-analyze-rewrite-rules/3608#3608) as a trace of my discoveries in rewrite-land.
- 1
- 2010-11-03
- Jan Fabry
-
Eine vollständige Antwortfinden Siein diesem Thread: http://wordpress.stackexchange.com/questions/5413/need-help-with-add-rewrite-ruleFor full answer, se this thread: http://wordpress.stackexchange.com/questions/5413/need-help-with-add-rewrite-rule
- 0
- 2010-12-16
- Steven
-
- 2012-03-14
Ich habe allesgetan,was Jan Fabrygeschrieben hat,aber wennich anrufe:
http://www.mysite.com/customPostTypeSlug/page/id
Wordpress leitetmich weiter (301) an:
http://www.mysite.com/customPostTypeSlug/page
Meine Regel lautet (wird voneiner "init" -Aktion aufgerufen):
add_rewrite_rule( 'customPostTypeSlug/page/([^/]+)/?' , 'index.php?customPostTypeSlug=page&id=$matches[1]', 'top' );
Dann spüleiches.
Ich ändere den Permalink von
%category%/%postname%
in%postname%
und scheint zufunktionieren.I did all Jan Fabry wrote, but when I call:
http://www.mysite.com/customPostTypeSlug/page/id
Wordpress redirect (301) me to:
http://www.mysite.com/customPostTypeSlug/page
My rule is (called by an "init" action):
add_rewrite_rule( 'customPostTypeSlug/page/([^/]+)/?' , 'index.php?customPostTypeSlug=page&id=$matches[1]', 'top' );
Then I flush it.
I change permalink from
%category%/%postname%
to%postname%
and seems to work.
Icherstelleeinige benutzerdefinierte Vorlagenin Wordpress und übergebeeinige Datenin den URLs.
Derzeit siehtmeine URLfolgendermaßen aus: http://www.mysite.com/designers/?id=43& ;name=designer +name
Die URLenthält die Designer-ID und den Designernamen.
Ich würde das wirklichgerne verwenden: http://www.mysite.com/designers/designer+name/
Meine Permalink-Strukturist auf
eingestellt/%category%/%postname%/
Meine .htaccess-Datei siehtfolgendermaßen aus:
Ich habemir http://codex.wordpress.org/Using_Permalinks angesehen,bin abernichtgeworden weiser.
Ich habe zwei Fragen:
UPDATE
Ichfüge zur Verdeutlichung weitere Informationen hinzu.
Meine URL wird derzeitfolgendermaßenerstellt:
Url = get_permalink().'?bid='.$brand->id.'&name='.$brand->name;
Ich habe hiereine ähnliche Methode angewendet:
http://storelocator.no/search/?brandID=4673 & amp; storeID=0 & amp;brand=Moods + of + Norway
Die Verwendungeinesbenutzerdefinierten Beitragstyps wareine Option,dieichin Betrachtgezogen habe,aberichbrauchtemeine eigene Tabellenstruktur,da Designer/Markenmit Galerien verknüpft sind (und weitere Links zu anderen Tabellenfolgen). Das Speichern von Markendatenin der WP POST-Tabellefunktionierte alsonicht.
Alsomussich das wissen: