Benutzerdefinierte Beitragstypen und benutzerdefinierte Variablen – Frage zu add_rewrite_tag ()

Ich stecke hier fest und habe keine Ahnung, was ich mache. Ich habe einen benutzerdefinierten Post-Typ namens Bereiche, das ist hierarchisch. Wir wollen eine Variable in die Seite einfügen, und es muss hübsch sein. Derzeit ist es:

http://www.example.com/area/alabama/birmingham/?action=places 

Wir würden es gerne haben:

 http://www.example.com/area/alabama/birmingham/places/ 

Ich habe jetzt mit add_rewrite_tag() mehrere Stunden add_rewrite_tag() und kann es einfach nicht zum add_rewrite_tag() bringen.

 function create_custom_rewrite_rules() { global $wp_rewrite; // Define custom rewrite tokens $rewrite_tag = '%places%'; // Add the rewrite tokens $wp_rewrite->add_rewrite_tag( $rewrite_tag, 'area/(.+?)/places/', 'action=places' ); // Define the custom permalink structure $rewrite_keywords_structure = $wp_rewrite->root . "area/%pagename%/$rewrite_tag/"; // Generate the rewrite rules $new_rule = $wp_rewrite->generate_rewrite_rules( $rewrite_keywords_structure ); $wp_rewrite->rules = $new_rule + $wp_rewrite->rules; return $wp_rewrite->rules; } function add_custom_page_variables( $public_query_vars ) { $public_query_vars[] = 'action'; return $public_query_vars; } add_action( 'generate_rewrite_rules', 'create_custom_rewrite_rules' ); add_filter( 'query_vars', 'add_custom_page_variables'); 

Solutions Collecting From Web of "Benutzerdefinierte Beitragstypen und benutzerdefinierte Variablen – Frage zu add_rewrite_tag ()"

 function add_places_rewrite_tags() { add_rewrite_tag('%action%','([^&]+)'); } add_action( 'init', 'add_places_rewrite_tags' ); 

Fügen Sie zuerst die Rewrite-Tag-Aktion hinzu (action = xxxx)

 function add_places_rewrite_rules() { add_rewrite_rule('^area/([^/]*)/places/?','index.php?post_type=area&name=$matches[1]&action=places','top'); add_rewrite_rule('^area/([^/]*)/([^/]*)/places/?','index.php?post_type=area&name=$matches[2]&action=places','top'); } add_action( 'init', 'add_places_rewrite_rules' ); 

Fügen Sie dann eine benutzerdefinierte Rewrite-Regel hinzu. (post_type = Bereich kann anders sein, wenn Sie einen benutzerdefinierten Slug für den Posttyp erstellt haben, verwenden Sie den posttype-Namen).

Denken Sie daran, Ihre Rewrite-Regeln zu löschen, damit dies funktioniert (gehen Sie zu Ihren Permalink-Einstellungen).

Hier ist eine andere Frage, die Ihrer mit einer funktionierenden Antwort sehr ähnlich ist … Sehen Sie, ob es hilft.

Benutzerdefinierte Seite mit Variablen in URL. Nette URL mit add_rewrite_rule