Wie bette ich eine neue Zeichenfolge in die URL ein?

Ich erstelle ein benutzerdefiniertes Touren- und Reisethema, in dem ich benutzerdefinierte Beitragstypen Städte, Orte, Reiseziele erstellt habe, und verwende eine benutzerdefinierte Permalink-Struktur. /%category%/%postname%/

Jetzt möchte ich einen Namen oder einen Distriktnamen vor dieser Stadt, dem Ziel oder dem Standortnamen anhängen. Lassen Sie mich das verdeutlichen, indem ich Ihnen ein Beispiel gebe.

Die aktuelle URL-Struktur ist wie folgt. http://test.com/custom_post_type_slug/post_name_slug

Und wie ich möchte, dass es so ist. http://test.com/Custom_dynamic_string/custom_post_type_slug/post_name_slug Im Moment mache ich so etwas

 function add_places_rewrite_tags(){ add_rewrite_tag('%district%','([^/]+)'); } add_action( 'init', 'add_places_rewrite_tags' ); add_action( 'init', 'custom_rewrite_rules' ); function custom_rewrite_rules() { add_rewrite_rule( "/([^/]+)/hotel/([^/]+)/?", 'index.php?post_type=hotel&district=$matches[1]&p=$matches[2]', 'top' ); add_filter( 'query_vars', 'custom_query_vars' ); } function custom_query_vars( $query_vars ) { $query_vars[] = 'district'; return $query_vars; } 

aber es gibt mir immer noch nicht die gewünschten Ergebnisse und ich benutze auch ein Plugin , um die Re-Wright-Regeln zu analysieren

Solutions Collecting From Web of "Wie bette ich eine neue Zeichenfolge in die URL ein?"

Versuche dies

 add_filter( 'rewrite_rules_array','my_insert_rewrite_rules' ); add_filter( 'query_vars','my_insert_query_vars' ); function my_insert_rewrite_rules( $rules ) { $newrules = array(); $newrules['(.+?)/custom_post_type_slug/(.+?)/?$'] = 'index.php?post_type=custom_post_type_slug&dynamic_string=$matches[1]&custom_post_type_slug=$matches[2]'; return $newrules + $rules; } function my_insert_query_vars( $vars ) { array_push($vars, 'dynamic_string'); return $vars; } 

Nachdem du dies der functions.php hinzugefügt und an deine Bedürfnisse angepasst hast, solltest du die Einstellungen> Permalinks im Admin aufrufen, um die Neuschreibungen zu löschen.

 add_action( 'init', 'custom_rewrite_rules' ); function custom_rewrite_rules() { add_rewrite_rule( "/([^/]*)/custom_post_type_slug/([^/]*)/?", 'index.php?post_type=custom_post_type_slug&Custom_dynamic_string=$matches[1]&custom_post_type_slug=$matches[2]', 'top' ); /** * Add the above to Query Vars */ add_filter( 'query_vars', 'custom_query_vars' ); } function custom_query_vars( $query_vars ) { $query_vars[] = 'Custom_dynamic_string'; return $query_vars; } 

Dann können Sie in Ihren Vorlagen die Variable “Custom_dynamic_string” (oder wie auch immer Sie sie nennen) mit dieser function erhalten:

 $custom_dynamic_string = get_query_var('Custom_dynamic_string');