2012-07-03 29 views
5

Ich bin ein PHP-Entwickler und ich entwickle gerade ein CMS/Blog-System. Ich möchte ein Permalink-System wie WordPress hinzufügen. Ich bin neugierig, wie WordPress Permalink parsen. Zum Beispiel, wie Daten wie id und post name von bekommen:Wie WordPress Permalink System funktioniert?

example.com/id/123/post/example/ 

Kurz gesagt, ich mag ein System id und post name aus der URL zu erhalten. Ich mag die Benutzer ermöglichen, die Permalink-Struktur zu ändern, wie Wordpress-Tags wie mit:

id/%postid%/post/%postname%/ 

Wie kann ich Daten in Variablen wie $id und $post_name die Werte 123 und example? Bitte hilf mir. Vielen Dank im Voraus.

Antwort

0

Dies hängt davon ab, welche Server-Software Sie verwenden, aber wenn Ihre Planung Ihrer Skripte auf Apache unter Verwendung es, in der Regel beinhaltet etwas mod_rewrite und speziell eine .htaccess Datei mit dem Namen verwenden.

Ich würde empfehlen, mit dem Lesen eines Tutorials zu diesem Thema zu beginnen. As usual, Google is your friend.

5

Das allgemein verfügbare Apache-Modul mod_rewrite kann Ihnen dabei helfen. Sie schreiben Rewrite-Regeln in eine .htaccess-Datei, und durch das Neuschreiben werden ausgefallene Strukturen, die normalerweise einem Dateisystem ähneln würden, als $ _GET-Parameter an eine PHP-Datei gesendet.

Zum Beispiel, wenn man will, wie etwas ersetzen: ?reactor=13 in /reactor/13/

schreiben diese Rewrite-Regel in der .htaccess-Datei:

RewriteEngine on 
RewriteRule reactor/([0-9]+)/$ index.php?id=$1 

Nun, wenn statt index.php Sie nach oben ziehen URLs ein, um

Array 
(
    [id] => 13 
) 

Nun, für Ihre HTML-Code, ist es an Ihnen, Handwerk:/Reaktor/13 /, sollten Sie Ihre Datei index.php diese $ _GET sehen in nd gehorche deiner durchdachten Struktur.

Diese Umschreibungsregeln können verwirrend sein, aber sie folgen einem logischen Regex-Muster.

WordPress ist stärker als das Einfügen dieser Bearbeitungs-.htaccess-Dateien, wo sie alles an WP senden, und dann WP löst/leitet den Rest durch interne Regeln.

+0

Wo in der WP-Quelle verarbeitet die Links? Ich bin mir sicher, dass du recht hast (die Regeln für mod_rewrite sind sehr einfach/generisch), aber wenn ich sehen könnte, wo das passieren soll, würde es mir helfen, ein seltsames Problem zu diagnostizieren, das ich habe. – iX3

+1

WP ist eigentlich zu verschachtelt oder abstrahiert, um auf einen einzelnen Ort zu zeigen. Sie können dies sehen, indem Sie auf https://github.com/WordPress/WordPress/search?q=permalink_structure&source=cc schauen – pp19dd

Verwandte Themen