2017-03-02 2 views
0

Zum Beispiel registrieren I 3 nach Typ (oder mehr) in meinem Thema von register_post_type() Funktion:Wie erhalten Sie alle Posts außer Posts, die zu bestimmten Post-Typ Wordpress gehören?

  • Agenda
  • Herunterladen
  • Produkt

Jetzt möchte ich alle Beiträge erhalten, gehört nicht zu Product post type (alle Posts von Post, Page, Agenda, Download).

Ich möchte nicht 'post_type' => array('post','page','agenda','download') verwenden, weil ich vielleicht mehr Beitragstypen in der Zukunft registrieren werde.

Gibt es keinen gleichwertigen Parameter für 'category__not_in' für Post-Typen?

+0

Ihren Code anzeigen? Was hast du bisher versucht? Verwenden Sie eine WP_Query? – yivi

+0

http://wordpress.stackexchange.com/questions/28084/exclude-category-from-get-posts – ashanrupasinghe

+0

@yivi Jetzt schreibe ich Plugin für Generate Data Test automatisch. Ich benutze ACF in meinem Thema. In diesem Fall muss ich den Post-Typ erkennen, den ACF zeigt. Ich werde es mit deinem Kommentar versuchen. Vielen Dank. –

Antwort

2

Ich bin nicht sicher, was versucht, ist eine großartige Idee, aber man kann so etwas tun:

Zuerst Sie get all the existing post_types:

$post_types = get_post_types(['public' => true]); 

Dann Sie aus dem Array entfernen die Post-Typen Sie wollen nicht abfragen:

$excluded_posttypes = ['product']; 
$post_types   = array_diff($post_types, $excluded_posttypes); 

Und dann verwenden Sie, dass als Parameter für Ihre WP_Query Aufruf:

'post_type' => $post_types, 
+0

Danke. Ich werde es auf diese Weise versuchen. –

+0

@ Mít Hat es funktioniert? Denken Sie daran, eine Antwort zu akzeptieren, wenn es Ihr Problem löst. :) – yivi

+0

Ah ja danke, es funktioniert !! –

0

Vielleicht müssen Sie dies: https://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts

Es ist ein Beispiel Kategorien für den Ausschluss, vielleicht dies mit Post-Typen funktionieren könnte.

Falls es oben mit dem Haken nicht möglich ist, können Sie die folgenden Punkte, bevor Aufbau Ihrer Abfrage versuchen:

  1. Sammeln Sie alle Post-Typen in Ihre Website: https://codex.wordpress.org/Function_Reference/get_post_types
  2. sie Setzen Sie in einem Array, so dass Sie post_type ‚Option‚ll, dass für die in Ihrer Abfrage verwenden können‘
  3. entfernen Sie die Post-Typen, die Sie aus dem Array ausschließen möchten

diese Weise wird jede neu neu Gived Post-Typ wird in der Abfrage enthalten sein. Beachten Sie, dass der standardmäßige WP-Post-Typ "Posts" auch in der get_post_types-Funktion zurückgegeben wird.

+0

Feedback über das Downvote würde geschätzt werden – peird

+0

Danke für die Antwort. Sie haben die gleiche Idee mit dem ersten Kommentar, also werde ich beide versuchen ^^ –

Verwandte Themen