Ich habe eine statische Startseite für mein WP-Installationsset von settings > reading
. Dann habe ich mit einen URL-Endpunkt hinzugefügt.
add_rewrite_endpoint('foo', EP_ALL);
Die Titelseite sollte also über zugänglich sein
http://example.com/
http://example.com/foo
http://example.com/foo/bar
Für # 1 funktioniert alles einwandfrei, aber für # 2 und # 3 home.php
wird anstelle der statischen Homepage die Standardeinstellung angezeigt. Lokal in Einzel- und Multisite-Installation getestet.
Ist es ein gewünschtes Verhalten oder treffe ich etwas Ungewöhnliches? Noch wichtiger ist, wie kann ich WP dazu bringen, die statische Homepage unter den gegebenen Bedingungen anzuzeigen?
Lösung
Ich habe mich bereits eingehakt parse_request
, um einen Teil des Codes zu verarbeiten, falls foo
vorhanden. Also, gemäß der Lösung von @ gmazzap. Ich muss es erst danach deaktivieren. Es ist keine zusätzliche Hakenfunktion erforderlich, um den Fehler zu umgehen.
add_action('parse_request', function(&wp){
$key = 'foo';
if (!array_key_exists( $key, $wp->query_vars ) ) {
return;
}
// do things when foo exists
// we no longer need 'foo'
unset($wp->query_vars[$key]);
});