Die Rewrite-Regeln können nicht funktionieren

Grundsätzlich möchte ich Folgendes schreiben: / edit / test-post auf eine bestehende Seite mit einem Parameter: / edit? E = test-post

Aus den Beispielen im Codex habe ich erstellt:

add_filter( 'rewrite_rules_array','my_insert_rewrite_rules' ); add_filter( 'query_vars','my_insert_query_vars' ); add_action( 'wp_loaded','my_flush_rules' ); // flush_rules() if our rules are not yet included function my_flush_rules(){ $rules = get_option( 'rewrite_rules' ); if ( ! isset( $rules['(edit)/(\d*)$'] ) ) { global $wp_rewrite; $wp_rewrite->flush_rules(); } } // Adding a new rule function my_insert_rewrite_rules( $rules ) { $newrules = array(); $newrules['(edit)/(\d*)$'] = 'edit?&e=$matches[2]'; return $newrules + $rules; } // Adding the id var so that WP recognizes it function my_insert_query_vars( $vars ) { array_push($vars, 'e'); return $vars; } 

Aber ich kann es einfach nicht funktionieren, was mache ich falsch?

Vielen Dank!

Solutions Collecting From Web of "Die Rewrite-Regeln können nicht funktionieren"

Mit “existierende Seite” meinen Sie eine WordPress-Seite? Meine Erfahrung mit rewrites ist das Routing alles auf index.php mit jeder zusätzlichen Abfrage vars Sie brauchen, denke ich, versuchen, es zu edit ist eines Ihrer Probleme, nicht ganz klar auf Ihre Absicht dort.

Go herunterladen Monkeyman Rewrite Analyzer, wenn Sie es noch nicht haben, ist es ein großartiges Werkzeug zum Testen dieser Dinge.

Ich habe die folgende Regel getestet, um zu überprüfen, ob sie funktioniert. Alle Anfragen an /edit/* laden eine Seite namens ‘edit’, get_query_var('e') liefert den korrekten Wert für e in meiner Vorlage.

Hinweis: Ich habe die Regeln hier nicht gelöscht. Ich besuche normalerweise die Seite Settings > Permalinks und klicke auf Speichern, um sie zu löschen, wenn ich sie ändere.

 < ?php add_action( 'init', 'my_rewrites_init' ); function my_rewrites_init(){ add_rewrite_rule( 'edit/([^/]+)/?', 'index.php?pagename=edit&e=$matches[1]', 'top' ); } add_filter( 'query_vars', 'my_query_vars' ); function my_query_vars( $query_vars ){ $query_vars[] = 'e'; return $query_vars; }