Dynamische URL-Rewrite-Regel

Ich muss eine Rewrite-Regel erstellen, die nur ausgeführt wird, wenn eine in-Page-Variable existiert, hier ist ein Pseudo-Code dessen, was ich zu erreichen bin.

if ($var != null) { // do something } else { url_rewrite('current_url', 'new url'); } 

Das Problem, auf das ich gestoßen bin, ist, dass die eingebaute WordPress-function eine Aktivierung bei Init erfordert und redirect würde, unabhängig davon, ob die Regel vorhanden ist oder nicht.

Jede Hilfe wird geschätzt!

Solutions Collecting From Web of "Dynamische URL-Rewrite-Regel"

Wenn Sie Ihre if / else-statement innerhalb der function platzieren, die Sie für den init Hook aufrufen, wird die Umleitung nur dann ausgeführt, wenn Ihre $var zu false ausgewertet wird. Beispielsweise

 function 290127_init_validate(){ if ( ! is_post_type_archive('book') ) { return; } if ($var != null) { // do something } else { wp_redirect('new url'); } } add_action("init", "290127_init_validate"); 

WordPress bietet eine Reihe von bedingten Tags, die verwendet werden können, um eine genauere Kontrolle darüber zu geben, wann eine function ausgeführt werden soll. Sie können diese bedingten Tags am Anfang Ihrer function verwenden und früh zurückkehren, wenn sie nicht als wahr ausgewertet werden. Die obige Beispielfunktion wird nur auf der benutzerdefinierten Archivseite ‘book’ ausgeführt.