it-swarm.com.de

Dynamisches Filtern von WP_Query im Front-End

Ich habe eine Archivseite für einen benutzerdefinierten Beitragstyp (CPT), auf der ich zwei Dinge tun möchte:

  1. Eine Liste der Begriffe anzeigen, die in der dem CPT zugeordneten Taxonomie enthalten sind.

  2. Verwenden Sie diese Begriffe, um eine wp_query, die auf derselben Seite angezeigt wird, dynamisch zu ändern.

Mein benutzerdefinierter Beitragstyp lautet beispielsweise "Lesen". Ich verwende eine benutzerdefinierte Taxonomie für "Lesen" sowie verschiedene Begriffe wie "Serie", "Nachrichten", "Spezielle Dienste" usw.

Ich möchte die aufgelisteten Begriffe verwenden, um zu aktualisieren, was in der Schleife angezeigt wird (dh wenn jemand auf "Serie" klickt, werden in der Schleife nur Beiträge angezeigt, die sich in "Serie" befinden, wenn er auf "Nachrichten" in der Schleife klickt wird dann aktualisieren und nur die Beiträge in "Nachrichten" usw. anzeigen).

Ich habe die Begriffe mit der Funktion 'get_terms' erfolgreich aufgelistet. Ich habe jedoch keine Ahnung, wie ich diese Begriffe dynamisch ändern kann, was in der Schleife angezeigt wird (ich verwende eine neue wp_query).

Wie kann ich zulassen, dass ein vom Benutzer ausgewählter Begriff die angezeigte Abfrage dynamisch (über Ajax) aktualisiert?

Ich freue mich über jede Hilfe, die Sie mir geben können!

1
sevenspirits

Das habe ich kürzlich auf einer Website gemacht, die sich leicht an Ihren Fall anpassen lässt. Ich habe jQuery für eine Reihe von Dingen auf dieser Site verwendet, also habe ich mich darauf verlassen.

Während WP eine großartige AJAX -Handhabung hat, war es in diesem Fall für mich einfacher, nur die AJAX load () -Methode von jQuery zu verwenden. Wenn Ihre aktuelle Seite ein Element div#loaded-content-area enthält und Sie es mit dem Teil des div#content-to-load einer anderen Webseite füllen möchten, müssen Sie einfach die jQuery ausführen:

$("div#loaded-content-area")
.load("http://www.example.org/page-of-data/ #content-to-load");

Um Ihr Problem zu lösen, stelle ich sicher, dass ich den Schlüsselinhalt in meiner Taxonomiebegriffsvorlage im Thema mit ID="content-to-load" beschrifte (oder natürlich mit der ID, die zu Ihnen passt).

Laden Sie die Liste der Begriffspermalinks in Ihre angezeigte Seite und fügen Sie jedem einen Klick-Handler hinzu, der das href-Attribut aus dem Permalink als .load-URL von jQuery übergibt. Wenn Sie dann auf einen Begriff klicken, ruft jQuery den gewünschten Inhalt von der Begriffsseite ab und zeigt ihn ohne Aktualisierung auf der aktuellen Seite an.

Dieser Ansatz hat einige Vorteile:

1 - Fortschrittliche Verbesserung. Wenn ein Browser aus irgendeinem Grund kein JavaScript hat, wird die Begriffsseite stattdessen wie gewohnt geladen.

2 - Keine geschickte Suche: Die Begriffsseiten erledigen alles für Sie.

1