it-swarm.com.de

Anpassen der verfügbaren Beitragstyp-URL

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 propertiesund hat die Taxonomie 'Eigenschaftskategorie' mit slug property_category.

Anforderung

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 propertiesentfernen, 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 propertiesenthalten, 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.

1
Mehmood Ahmad

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.

0
Mehmood Ahmad