CPT-Beiträge nach Kategorie mit benutzerdefinierten URL zum Umschreiben aufgeführt, bitte helfen!

Hier ist, was ich versuche zu tun:

Ich habe 10 Nachtischrezepte (in geteilter Nachtischkategorie), die durch 2 kundenspezifische Pfostenarten geteilt werden. Ich möchte drei verschiedene Ansichten dieser Posts mit der unten beschriebenen benutzerdefinierten URL-Struktur erstellen:

  1. Rezepte 1-3 (CPT “a”) mit URL: “home /% posttype% /% category% /”
  2. Rezepte 4-10 (CPT “b”) mit URL: “home /% posttype% /% category% /”
  3. Rezepte 1-10 (alle CPTs) mit URL: “home /% category% /”

Ich habe weit und breit nach einer Antwort gesucht, die sowohl die URL- als auch die Inhaltsaspekte meines Ziels vervollständigt, aber alles, was ich versucht habe, spricht nur das eine oder das andere an.

Beispiel: Für den Inhalt habe ich die Parameter get_posts() , um bestimmte Kategorien und Post-Typen anzuzeigen, aber da die Vorlage einer “Seite” zugeordnet ist, enthält die von WordPress generierte URL nicht den benutzerdefinierten Post-Typ und das Ergebnis lautet:

Startseite /% Seitenname% /

Für die URL habe ich versucht, die Init-Aktion zu verwenden, um Umschreibungsregeln zu ändern, wie in diesem Forum vorgeschlagen , und obwohl dies eine URL-Struktur genau so erzeugt, wie ich es möchte, entspricht die Inhaltsausgabe für die URL nicht den Erwartungen. Das Ergebnis ist, dass alle drei URLs alle 10 Rezepte enthalten (im Wesentlichen die Archivseite der allgemeinen Kategorie):

“home /% posttype% /% category% /” ist dasselbe wie “home /% category% /” und ich kann nicht herausfinden warum.

Ich habe pre_get_posts auch einen Filter pre_get_posts , um meine CPTs in die Hauptabfrage aufzunehmen, so dass sie überhaupt angezeigt werden. Ich bin mir nicht sicher, ob es einen besseren Weg gibt, dies zu tun, falls es die URL-Neuschreibung stört. Obwohl ich den Code aus dem WP-Codex hier unter “Benutzerdefinierte Beitragstypen in der Hauptabfrage” genommen habe, denke ich, dass das Problem / die Lösung irgendwo liegt Ich scheine nicht zu schauen.

Ich kann mir nicht vorstellen, dass das, was ich will, so kompliziert sein soll. Kann jemand sehen, was ich vermisse?

Vielen Dank!!

Solutions Collecting From Web of "CPT-Beiträge nach Kategorie mit benutzerdefinierten URL zum Umschreiben aufgeführt, bitte helfen!"

Ich habe mir Ihren Code angeschaut und gesehen, wie Sie den ursprünglichen Code geändert haben.

Um zu verdeutlichen, was Sie mit diesem Snippet erreichen können. Sie würden mit den folgenden Permalinks enden:

 /recetas-argentinas/category/desserts 

Zeigt alle Posts mit den post_type recetas-argentinas und mit der Kategorie desserts an.

 /recetas-argentinas/my-single-recept-post 

Zeigt einen einzelnen Post des post_type recetas-argentinas an.

Ich habe nur das Code-Snippet von dem ursprünglichen Link verwendet und es funktionierte für mich.

Hier ist ein Screenshot des Rewrite Analyzers, um zu zeigen, wie es funktioniert. Grundsätzlich geben Sie eine URL in das Eingabefeld oben ein und das Plugin zeigt Ihnen, welche Rewrite-Regeln mit dieser URL übereinstimmen:

Verwendung von Monkeyman Rewrite Analyzer

Bitte beachten Sie auch, dass die Category base in Ihren Permalink Einstellungen ebenfalls einen Einfluss darauf hat. Um eine Permalink-Struktur wie oben zu haben, müsstest du sie leer lassen.

Ich hoffe, dies hilft Ihnen, Ihr Ziel zu erreichen.


Alte Antwort

Ich bin mir nicht sicher, ob ich deine Frage vollständig beantworte, sondern aus den folgenden zwei Sätzen:

Ich habe es geschafft, WP_query zu verwenden, um eine Seitenvorlage zu erstellen […] Allerdings kann ich die URL-Strukturen oder Slugs für dieses gefilterte Kategoriearchiv nicht herausfinden

Eine Seitenvorlage hat keine Permalink-Struktur. Es ist nichts anderes als eine Vorlage, die einer einzelnen Seite zugeordnet ist – auch wenn Sie damit eine “archivähnliche” Liste von Beiträgen anzeigen.

Zwei weitere Vorschläge:

  • Bei Problemen mit dem Neuschreiben (besonders wenn es sich um widersprüchliche Neuschreibstrukturen handelt) ist es eine gute Idee, Ihre Permalinks mit dem Monkeyman Rewrite Analyzer zu debuggen.
  • register_post_type () bietet umfangreiche Unterstützung für das Erstellen von benutzerdefinierten Permalink-Optionen, mit denen Sie Permalink-Konflikte vermeiden können.

Auch wenn dies keine direkte Antwort auf Ihre Frage ist, hoffe ich, dass Ihnen das weiterhilft.