Regeln umschreiben und erfassen

Ich habe was ich denke sollte ein wirklich einfaches Problem sein. Aber aus irgendeinem Grund kann ich es nicht knacken.

Ich möchte, dass alles, was einer vorhandenen Seite folgt, als Abfrage-Argument auf diese Seite geleitet wird. Damit

example.com/mypage/this/that/other

example.com/mypage/this/that

beispiel.com/mypage/this

sollten alle dazu führen

example.com/mypage mit Abfrage cpath = / this / that / other (oder was auch immer)

Irgendwelche Gedanken? Die Verwendung von Standardreferenzen hat zu nichts anderem als 404 Seiten geführt

Vielen Dank,

Solutions Collecting From Web of "Regeln umschreiben und erfassen"

Sie könnten eine Rewrite-Regel hinzufügen. Rewrite-Regeln sind die regulären Ausdrücke, die WP verwendet, um die Abfrage von befreundeten URLs zu analysieren. Aber ich denke, das würde möglicherweise die Dinge durcheinander bringen . Wie würde WP unterscheiden zwischen /this-is-a-page/this-is-a-child-page/ und /this-is-a-page/this-is-a-parameter/ ?

Eine bessere Option wäre, glaube ich, in die parse_request Aktion parse_request . Dies wird aufgerufen, nachdem WP geladen hat, was es denkt, sind die Abfrage vars, aber bevor es die Abfrage macht (und so bevor es entscheidet, dass die Anfrage “nicht gefunden werden soll.”) Diese Aktion Hook übergibt das WP-Objekt an Ihre function durch Verweis.

 add_action("parse_request", "my_parse_request"); /** * @param WP $wp */ function my_parse_request(&$wp){ echo "
"; var_dump($wp->query_vars); die(); }

Für eine bestehende Seite server.loc/sample-page/ gibt dies aus:

 array(2) { ["page"]=> string(0) "" ["pagename"]=> string(11) "sample-page" } 

Parameter server.loc/sample-page/parameter-1/parameter-2/ ... server.loc/sample-page/parameter-1/parameter-2/ ...

 array(2) { ["page"]=> string(0) "" ["pagename"]=> string(35) "sample-page/parameter-1/parameter-2" } 

Da $wp als Referenz übergeben wird, können Sie $wp->query_vars direkt $wp->query_vars , nachdem Sie überprüft haben, welche Teile von page_name tatsächlich Seiten sind, und Ihre Parameter zur späteren Verwendung speichern.

Beachten Sie, dass die page in $wp->query_vars auf die Seitenzahl verweist, falls vorhanden. Alles, was Sie berühren sollten, ist pagename .

Der Code, von dem parse_request aufgerufen wird, befindet sich in wp-includes/class-wp.php .