Benutzerdefinierte Felder in der benutzerdefinierten Beitragstyp-URL verwenden

Ich entwickle eine Auto-Website, die Showrooms hat. Jeder Showroom benötigt eine eigene URL, basierend auf seinem Standort. Der Standort (Stadt und Bundesland / Bundesland) ist bereits als zwei benutzerdefinierte Felder eingefügt. Wenn zum Beispiel “Showroom A” in Liverpool, Merseyside, ist, wäre die URL folgende:

http://www.domain.de/location/merseyside/liverpool/showroom-a/

Ich habe einen benutzerdefinierten Post-Typ von “Showroom”, bei dem die Rewrite-Regeln auf “false” gesetzt sind (obwohl es zuvor im Test auf “true” gesetzt wurde). Wenn ich jedoch den betreffenden Beitrag erstelle, liegt ein Problem vor. Der Permalink wird angegeben als alles BAR der Name des Showrooms (zB http://www.domain.com/location/merseyside/liverpool/ ). Das Aufrufen dieser URL führt zu einem 404-Fehler und sogar zum Hinzufügen von “showroom-a” (zum Beispiel) am Ende des Codes (http://www.domain.com/location/merseyside/liverpool/showroom-a/) verursacht einen 404-Fehler. Hier ist mein Code.

function add_rewrite_rules() { // Register custom rewrite rules global $wp_rewrite; $wp_rewrite->add_rewrite_tag('%showroom%', '([^/]+)', 'showroom='); $wp_rewrite->add_rewrite_tag('%post_custom_data%', '([^/]+)', 'post_custom_data='); $wp_rewrite->add_permastruct('showroom', 'location/%post_custom_data%', false); } function permalinks($permalink, $post, $leavename) { $no_data = 'no-data'; $post_id = $post->ID; if($post->post_type != 'showroom' || empty($permalink) || in_array($post->post_status, array('draft', 'pending', 'auto-draft'))) return $permalink; $state = sanitize_title_with_dashes(get_post_meta($post_id, 'state', true)); $city = sanitize_title_with_dashes(get_post_meta($post_id, 'city', true)); $data = $state . "/" . $city; if(!$data) $data = $no_data; $permalink = str_replace('%post_custom_data%', $data, $permalink); return $permalink; } add_action('init', 'add_rewrite_rules'); add_filter('post_type_link', 'permalinks', 10, 3); 

Irgendwelche Ideen oder Hilfe würden geschätzt werden 🙂

Solutions Collecting From Web of "Benutzerdefinierte Felder in der benutzerdefinierten Beitragstyp-URL verwenden"

Ich habe es geschafft, das zu beheben.

Grundsätzlich habe ich das Permastruct folgendermaßen geändert:

 $wp_rewrite->add_permastruct('showroom', 'location/%state%/%city%/%showroom%', false); 

Ich habe dann State & City als zwei separate Variablen erfasst und sie in der Permalink-Struktur mit diesen Zeilen ersetzt:

 $permalink = str_replace('%state%', $state, $permalink); $permalink = str_replace('%city%', $city, $permalink); 

Mit $state & $city gegriffen mit get_post_meta aus dem Post.