Eigentlich muss ich die Struktur meiner URLs für den benutzerdefinierten Beitragstyp ändern (ich möchte auch die Taxonomie-URL anpassen, aber nur den Beitrag für diese Frage als Ziel festlegen, um Verwirrung zu vermeiden).
Mein benutzerdefinierter Beitragstyp ist Eigenschaft mit slug properties
und hat die Taxonomie 'Eigenschaftskategorie' mit slug property_category
.
Derzeit sieht die Struktur des benutzerdefinierten Beitragstyps wie folgt aus: https://domain.com/properties/postname
Für den benutzerdefinierten Beitragstyp möchte ich Kategorien und Unterkategorien in die URL aufnehmen und properties
entfernen, so wie https://domain.com/property_category/property_sub_category/**/postname
Mit dem Plugin (Custom Post Type Permalinks) bekomme ich diese URL https://domain.com/properties/property_category/property_sub_category/**/postname
Wie Sie sehen, ist in meiner obigen URL properties
enthalten, und ich muss sie entfernen, damit bis hierher alles funktioniert.
Danach habe ich die Eigenschaften aus der URL entfernt und eine Funktion hinzugefügt, um den benutzerdefinierten Beitragstyp meiner Eigenschaft zusammen mit Beiträgen und Seiten zu überprüfen, sodass meine URL zu https://domain.com/property_category/sub_category/**/postname
wird, aber sie bricht, bedeutet, dass ich 404 bekomme.
Diese URL funktioniert, aber ich brauchte diese nicht https://domain.com/property_postname
Ich glaube, dass Wordpress ReWrite API
dieses Problem lösen kann, aber nicht in der Lage ist, die tatsächliche Lösung dafür zu finden.
Jede Hilfe in dieser Hinsicht wird sehr geschätzt.
Die Probleme, mit denen ich konfrontiert bin, sind bereits ausführlich beschrieben. Da ich vermute, dass WordPress Rewrite API dieses Problem lösen kann, habe ich diese Lösung gefunden. Ich habe nur zwei Hauptkategorien für meine Posts, daher ordne ich diese meinen Eigenschaften zu, da ich custom_post_type-Namen aus der URL entferne, sodass es etwas geben sollte, um die URL zu identifizieren und zu ordnen.
/**
* Rewriting url
*/
function mak_rewrite_add_rewrites()
{
// Mapping Property
add_rewrite_rule(
'^category_one_name(/[\S]*)+(/[\S]*)$',
'index.php?property=$matches[2]',
'top'
);
add_rewrite_rule(
'^category_two_name(/[\S]*)+(/[\S]*)$',
'index.php?property=$matches[2]',
'top'
);
}
add_action('init', 'mak_rewrite_add_rewrites');
$matches[2]
gibt an, dass der Wert aus der zweiten Klammer im regulären Ausdruck abgerufen werden soll.