Damit ist add_query_arg()
es schön, einer URL zusätzliche Parameter hinzuzufügen, und es ist auch einfach, eine Umschreiberegel zu erstellen. So weit, ist es gut. Das Problem ist jedoch die URL-Ersetzung durch WordPress.
Wenn ich eine URL habe, wie:
www.mysite.com/?page_id=1&myvar=test
und ich tippe diese URL in die Adresszeile des Browsers mit aktivierten Permalinks. Dieser Link wird zu:
www.example.com/pagename/?myvar=test
ABER : was ich gerne bekommen würde ist:
www.example.com/pagename/test
Zum Schluss möchte ich folgenden Code verwenden:
<a href="<?php add_query_arg( 'myvar', 'test', get_permalink() ) ?>"> .... </a>
was dazu führen würde:
www.example.com/pagename/test
Wie kann dies erreicht werden? Ich habe Stunden damit verbracht, Dokumente zu lesen, und konnte keine Lösung finden.
permalinks
url-rewriting
urls
user3114592
quelle
quelle
Antworten:
Ich habe mich gerade der gleichen Situation gestellt und bin beim Googeln auf diese Frage gestoßen.
Es scheint, dass dies nicht möglich ist. Core selbst hängt nur Zeichenfolgen an die URL an, wenn hübsche Permalinks aktiviert sind (siehe https://core.trac.wordpress.org/browser/tags/3.9.1/src/wp-includes/link-template.php#L571)
Für alle, die daran interessiert sind: Sie können so etwas in Ihrem Code tun:
Diese Lösung wurde auch von Jon Cave in einem Kommentar im offiziellen Make-Blog empfohlen: https://make.wordpress.org/plugins/2012/06/07/rewrite-endpoints-api/#comment-686
quelle
Mit WordPress können Sie dies nicht einfach tun. Tatsächlich sind Umschreiberegeln Ihre einzige Option, um diese Art von Dingen in WordPress zu erreichen, und WordPress-Umschreiberegeln können sehr unübersichtlich werden, wenn Ihre Website wächst, da Plugins und Themes (und auch Sie) möglicherweise benutzerdefinierte Umschreiberegeln über den vorhandenen Regeln in Ihrem (Multi) hinzufügen ) Installation vor Ort.
Die @ swissspidy-Lösung funktioniert, wenn Sie bereits eine Umschreiberegel für Ihren Schlüssel (myvar) haben und in der ersten Bedingung Permalinks verwenden und dann ohne diese Bedingungen auf herkömmliche Abfragezeichenfolgen zurückgreifen. Die Lösung von @Johnathan Joosten zeigt, wie das Umschreiben von Regeln in WordPress sehr, sehr komplex werden kann (stellen Sie sich vor, Sie tun dies für alle Ihre Schlüssel und Werte für Abfragezeichenfolgen ...)
Ich habe dieses Problem einige Male zuvor bei der Arbeit an mittelgroßen Projekten für meine Kunden getroffen und konnte mit einem Plugin namens Obfusquer etwas Ähnliches erreichen. Laut der Website maskiert es alle WordPress-Abfragezeichenfolgen mit benutzerdefinierten geheimen Schlüsseln und bietet auch Hooks für erweiterte benutzerdefinierte Anforderungen.
Witzig, es ist nicht im WordPress-Plugin-Repository aufgeführt, und ich denke, Sie benötigen ein Abonnement (was meiner Meinung nach sehr erschwinglich ist, da 1 einzelne Lizenz auch bei der Installation an mehreren Standorten funktioniert), aber hier ist ein Link dazu, wenn Sie maskieren müssen / verstecke Abfragezeichenfolgen in WordPress-Installationen. Sie haben auch Dokumentation hier .
Ich verwende das Plugin jetzt in fast allen meinen WordPress-Projekten und hoffe, es hilft Ihren Anforderungen. Prost.
quelle
Die Wordpress-Lösung würde darin bestehen, Umschreiberegeln hinzuzufügen, um so etwas zu erstellen:
Lesen Sie mehr: https://codex.wordpress.org/Rewrite_API/add_rewrite_rule
quelle