Regel für benutzerdefinierte Seite mit Query Vars in URL neu schreiben

Hintergrund

Ich habe eine Seite namens ‘listen’ mit einer benutzerdefinierten Vorlage, die eine benutzerdefinierte wp_query ausführt, die die Variable ‘show’ in der URL verwendet. Das folgende Beispiel funktioniert …

example.com/listen/?show=thebigshow 

Was ich möchte

Ich möchte in der Lage sein, den “show =” – Teil der URL loszuwerden und ihn wie folgt zu formatieren …

 example.com/listen/thebigshow 

Was ich versucht habe

Ich habe versucht, die folgende Umschreiberegel zu implementieren, aber ohne Erfolg.

 function add_query_vars_filter( $vars ){ $vars[] = "show"; return $vars; } add_filter( 'query_vars', 'add_query_vars_filter' ); function listen_rewrite_action() { add_rewrite_tag('%show%','([^/]*)'); add_rewrite_rule( '^listen/([^/]+)$', '/listen/?show=$matches[1]', 'top' ); } add_action( 'init', 'listen_rewrite_action' ); 

Ein bisschen mehr Informationen

Regeln neu schreiben (wie in einem Plugin angezeigt) Regeln neu schreiben (wie in einem Plugin angezeigt)

Wie sieht die .htaccess nach der Generierung aus? Wie sieht die .htaccess nach der Generierung aus?

Danke, Andy.

Solutions Collecting From Web of "Regel für benutzerdefinierte Seite mit Query Vars in URL neu schreiben"

Ich habe die .htaccess-Datei manuell gelöscht und neu generiert, was zusammen mit dem unten stehenden Code das Neuschreiben bewirkt hat. Die zweite Rewrite-Regel im folgenden Code bewirkt, dass die Paginierung ordnungsgemäß funktioniert.

Die .htaccess-Datei scheint jedoch nicht mit irgendwelchen Regeln geschrieben zu werden, aber das Umschreiben funktioniert jetzt irgendwie.

 function listen_rewrite_action() { add_rewrite_tag('%show%','([^/]*)'); add_rewrite_rule( '^listen/([^/]+)$', 'index.php?pagename=listen&show=$matches[1]', 'top'); add_rewrite_rule( '^listen/([^/]+)/page/([^/]+)$', 'index.php?pagename=listen&show=$matches[1]&paged=$matches[2]', 'top'); } add_action( 'init', 'listen_rewrite_action' );