Wie kann ich eine ‘Seiten’-URL basierend auf Abfragezeichenfolgen-Parametern neu schreiben?

Ich habe die folgende Seite, die einen einzigen Beitrag und eine Reihe von Kommentaren enthält:

http://mysite.com/tips

Wenn ein Nutzer einen Kommentar veröffentlicht, füge ich ihm Metadaten hinzu, sodass ich Kommentare mithilfe dieser URLs filtern kann:
http: // mysite / tips? id = cat & filter_id = 1
http: // mysite / tips? id = Hund & Filter_ID = 2

Ich möchte stattdessen die folgenden URLs verwenden:
http: // mysite / tipps / cat
http: // mysite / Tipps / Hund

Die Tipps-Seite zeigt eine Liste von Posts an, die auf den Abfrage-String-Parametern basieren.

Ich habe dieses Tutorial durchgearbeitet, das zu sein schien, was ich brauchte, aber wenn ich meine URL eintippe, bekomme ich einen Fehler, der nicht gefunden wurde. http://thereforei.am/2011/10/28/advanced-taxonomy-queries-with-pretty-urls/

Ist das möglich?

Solutions Collecting From Web of "Wie kann ich eine ‘Seiten’-URL basierend auf Abfragezeichenfolgen-Parametern neu schreiben?"

Sie können eine Rewrite-Regel wie die folgende hinzufügen. Stellen Sie sicher, dass Sie Ihre öffentlichen Abfrage-Vars mit WordPress registrieren, damit sie Ihre Rewrite-Regel-Variablen erkennt.

add_rewrite_rule('^(tips)/([^/]*)/([^/]*)/?', 'index.php?name=$matches[1]&id=$matches[2]&filter_id=$matches[3]','top'); add_filter('query_vars', 'foo_my_query_vars'); function foo_my_query_vars($vars){ $vars[] = 'id'; $vars[] = 'filter_id'; return $vars; } 

Besuche die Permalinks-Einstellungen, um deine Permalinks zu löschen.

Sie können wie folgt auf Ihre Variablen zugreifen:

 $id = get_query_var('id'); $filter_id = get_query_var('filter_id'); 

Beachten Sie, dass Sie zwei dynamische Variablen mit einem URI-Segment haben möchten, die überhaupt nicht funktionieren. Die obige Rewrite-Regel funktioniert für tips / cat / 1 (1 ist die filter_id).

Um Ihre Regeln zu testen, empfehle ich Ihnen, den Monkeyman Rewrite Analyzer zu verwenden .

Hoffe das hilft dir aus!

Sie können die add_query_arg add_query_arg verwenden:

 add_query_arg('filter_id', 1); add_query_arg('filter_id', 2); 

Jetzt lauten die URLs wie folgt:

http://mysite/tips/cat?filter_id=1

http:// mysite/tips/dog?filter_id=2

Sie können die Werte der Argumente wie folgt abrufen:

 $id = get_query_var('id'); $filter_id = get_query_var('filter_id'); 

Hier finden Sie weitere add_query_arg zu add_query_arg

Ich denke, Sie möchten den Permalink Style ändern Sie können den Permalink Ihrer Website über Admin-Panel von WordPress gehen Sie zu WordPress und dann in der Sidebar Menü gehen Sie zu Einstellungen und dann dort sehen Sie ein Untermenü von Permalink klicken Sie darauf und Sie kann viele Arten von Permalinks sehen, die von wordpress zur Verfügung gestellt werden. Sie können auch Ihren eigenen Permalink erstellen. Schauen Sie sich das Bild an Ich hoffe, es könnte helfen:

Permalink Einstellungen