Ich habe einen CPT namens presskit
, und ich muss eine benutzerdefinierte Abfrage var namens welcome_box
. Ich habe diesen Code gerade jetzt:
function my_new_url_querystring(){ add_rewrite_tag( '%welcome_box%','([^&]+)' ); add_rewrite_rule( 'presskit/(.?.+?)/box/(.+)/?$', 'index.php?post_type=presskit&pagename=$matches[1]&welcome_box=$matches[2]', 'top' ); } add_action( 'init', 'my_new_url_querystring' );
Wenn ich versuche, mysite.com/presskit/presskit-name/box/john-doe
zu öffnen, geht es zurück zu mysite.com/presskit/presskit-name/
.
Wenn ich mysite.com/presskit/presskit-name/?welcome_box=john-doe
, funktioniert es und ich kann die Abfrage var bekommen.
Was mache ich falsch? Ich bin nicht gut mit Regexes, also ist vielleicht der Irrtum da.
Irgendwelche Tipps sind willkommen!
Dank der @Milo-Antwort konnte ich es zum Laufen bringen. Hier ist der Arbeitscode:
function my_new_url_querystring(){ add_rewrite_tag( '%welcome_box%','([^&]+)' ); add_rewrite_rule( 'presskit/([^/]+)/message-to/(.*)?/?$', 'index.php?presskit=$matches[1]&welcome_box=$matches[2]', 'top' ); } add_action( 'init', 'my_new_url_querystring' );
pagename
ist für den pagename
, wenn Sie versuchen, den Slug für den presskit
, entfernen Sie post_type
und pagename
und stellen presskit=$matches[1]
stattdessen presskit=$matches[1]
ein.