Erzwinge Abfrage-Abfrage-Var auf hierarchischer (verschachtelter) Seite

Ich möchte eine hierarchische (verschachtelte) Seite mit einer Abfragevariablen verwenden, um dynamischen Inhalt zu ziehen. Ich hatte Dinge, die funktionierten, wenn die Seite kein Kind einer anderen Seite war, wie zum Beispiel:

mysite.com/my-page/1234-my-var/ 

Wenn ich jedoch meine Seite zu einer query_var Seite einer anderen Seite gemacht habe, query_var mein query_var nicht mehr, z

 mysite.com/parent-1/parent-2/my-page/1234-my-var/ 

Mein Code

 /* Register Query Var ----- */ function my_queryvar_params( $query_v ) { $query_v[] = "my_var"; return $query_v; }; add_filter('query_vars', 'my_queryvar_params'); /* Rewrites ----- */ function setup_filter_rewrites(){ //add_rewrite_rule('^my\-page\/([0-9]+)\/?', 'index.php?pagename=my-page&my_var=$matches[1]', 'top'); // This works when my page has no parent, Returns a 404 when my page is a child/nested add_rewrite_rule('(.*)\/my\-page\/([0-9]+)\/?', 'index.php?pagename=my-page&my_var=$matches[1]', 'top'); // This doesn't return a 404, but I can't fetch my query_var using get_query_var() //add_rewrite_rule('^parent\-1\/parent\-2\/my\-page\/([0-9]+)\/?', 'index.php?pagename=my-page&my_var=$matches[1]', 'top'); // This doesn't return a 404, but I can't fetch my query_var using get_query_var() }; add_action( 'init', 'setup_filter_rewrites' ); /* Force Redirect ----- */ function my_redirect_check() { if (isset($_GET['my_var'])) { if ($_GET['my_var'] != '') { if ($_SERVER["HTTPS"]) {$location = 'https://';} else {$location = 'http://';} $location .= $_SERVER['SERVER_NAME']; $location .= strtok($_SERVER['REQUEST_URI'],'?'); $location = trailingslashit($location); $location .= $_GET['my_var']; $location = trailingslashit($location); wp_redirect($location); exit; }; }; }; add_action('init','my_redirect_check'); 

Ich bin mir nicht sicher, ob meine Regex falsch ist (ich habe es durch einen Regex-Checker laufen lassen und es überprüft) oder wenn ich gerade etwas Offensichtliches vermisse.

Würde mich über Einsichten freuen!

Solutions Collecting From Web of "Erzwinge Abfrage-Abfrage-Var auf hierarchischer (verschachtelter) Seite"

Nur für den Fall, dass jemand das benötigt:

 /* Register Query Var ----- */ function my_queryvar_params( $query_v ) { $query_v[] = "my_var"; return $query_v; }; add_filter('query_vars', 'my_queryvar_params'); /* Rewrites ----- */ function setup_filter_rewrites(){ add_rewrite_rule('^my-parent/my-page\/([0-9]+)\/?', 'index.php?pagename=my-parent/my-page&my_var=$matches[1]', 'top'); // As @Milo mentioned, the pagename paramenter needs to reflect the path hierarchy }; add_action( 'init', 'setup_filter_rewrites' ); /* Force Redirect ----- */ function my_redirect_check() { if (isset($_GET['my_var'])) { if ($_GET['my_var'] != '') { if ($_SERVER["HTTPS"]) {$location = 'https://';} else {$location = 'http://';} $location .= $_SERVER['SERVER_NAME']; $location .= strtok($_SERVER['REQUEST_URI'],'?'); $location = trailingslashit($location); $location .= $_GET['my_var']; $location = trailingslashit($location); wp_redirect($location); exit; }; }; }; add_action('init','my_redirect_check');