Wie entferne ich Posts von einer WP_Query, damit die Seitennummerierung richtig ist?

Ich verwende einen benutzerdefinierten Post-Typ und zeige 20 davon pro Seite auf der Homepage an. Ich verwende QP_Query.

Ein benutzerdefiniertes Feld für den benutzerdefinierten Post-Typ (Mixtapes genannt) ist ein Kontrollkästchen, das als “nicht freigegeben” (auf “Wahr / Falsch” gesetzt) ​​bezeichnet wird, und es ist im Grunde ein Post, den ich nicht in die Schleife aufnehmen möchte.

Bis jetzt habe ich eine bedingte if innerhalb der while-Schleife nur angezeigt, wenn “nicht freigegeben” nicht auf “wahr” gesetzt ist, aber das Problem ist, dass es (offensichtlich) nicht auf die Schleife selbst angewendet wird, also als Ergebnis … die Paginierung ‘ sieht 40 Einträge (2 Seiten), wenn wirklich nur 1 unveröffentlichtes Album vorhanden ist (das sollte 1 Seite sein, aber 2 Seiten werden angezeigt). Auf der 2. Seite gibt es keine Ergebnisse.

Ebenso, wenn ich die “Top 10” -Alben zeigen möchte, die veröffentlicht werden, zeigt es tatsächlich nur 9, weil das eine unveröffentlichte nicht aus der tatsächlichen Schleife entfernt wurde, nur bedingt “versteckt” nach der Tatsache.

Wie kann ich das ausarbeiten, so dass die Schleife die Posts verfolgt, die bei einer bestimmten custom_field-Bedingung entfernt wurden?

Thnkas

Solutions Collecting From Web of "Wie entferne ich Posts von einer WP_Query, damit die Seitennummerierung richtig ist?"

Suchen Sie nicht nach allen Posts und zeigen Sie nur diejenigen an, die den Kriterien entsprechen, und suchen Sie nach Posts, die den Kriterien entsprechen. WP_Query ermöglicht genau das mit seinen Meta-Key / Meta-Value- Attributen.

Um zum Beispiel Posts zu erhalten, bei denen das nicht freigegebene Feld “false” ist, irgendwo vor der Schleife:

 global $wp_query; $customField = array( 'meta_key' => 'unreleased', 'meta_value' => 'false' ); $args = array_merge( $wp_query->query,$customField); query_posts( $args ); 

Dies ist nicht die effektivste Art, Dinge zu tun, aber es ist die einfachste. Wir führen eine Zusammenführung mit der Meta-Schlüssel / Wert-Abfrage mit der vorhandenen Abfrage durch (einschließlich Paginierungsargumenten).

Sie müssen entscheiden, ob WP_Query und query_posts hier richtig sind (wenn es nicht die Hauptabfrage auf der Seite ist, dann sollten get_posts stattdessen get_posts verwenden – es akzeptiert dieselben Parameter).

Hinweis: Wenn Sie sich dafür entscheiden, get_posts oder WP_Query (aber nicht mit query_posts , die die Hauptabfrage query_posts ), sollten Sie nicht zusammenführen. (Wenn Sie nicht sicher sind, welches Sie verwenden sollten, sehen Sie dies jetzt offiziell, ‘große Antwort’ : D)