Holen Sie sich alle Beiträge, die KEINE Begriffe mit WP_Query haben

Lesezeit: 2 Minuten

Benutzer-Avatar
Nealv

Ich schreibe eine WordPress-Schleife und möchte alle Beiträge erhalten, denen KEINE Begriffe zugeordnet sind. Gibt es eine einfache Möglichkeit, dies zu tun? Oder muss ich wirklich alle Begriffs-IDs abrufen und eine Steuerabfrage wie folgt durchführen:

// Get all the term id's
$terms = array();
$terms = getAllTheTerms();

// Create an arguments which get all the posts that do not have a term with any
// of the id's.
$args = array(
    'post_type' => 'post',
    'tax_query' =>
        array(
            'taxonomy' => 'actor',
            'field' => 'id',
            'terms' => $terms,
            'operator' => 'NOT IN'
    )
);
$query = new WP_Query( $args );

Dies scheint eine dumme Abfrage zu sein, da es datenbanktechnisch sehr einfach wäre, alle Beiträge ohne Abfrage zu erhalten.

$terms = get_terms( $taxonomy, array('fields'=>'ids')); /* GET ALL TERMS FROM A TOXNOMY */
$args = array(
    'tax_query' => array(
        array(
            'taxonomy' => $taxonomy,
            'field'    => 'term_id',
            'terms'    => $terms,
            'operator' => 'NOT IN' /* DO THE MAGIC -  Get all post that no in the taxonomy terms */
        )
    )
);
$the_query = new WP_Query( $args );

  • Fügen Sie Ihrer Antwort weitere Erläuterungen hinzu.

    – dingo_d

    20. November 2015 um 7:15 Uhr

Benutzer-Avatar
Paul

Die Frage war: „Ich schreibe eine WordPress-Schleife und möchte alle Beiträge abrufen, denen KEINE Begriffe zugeordnet sind. Gibt es eine einfache Möglichkeit, dies zu tun?“

Hier ist die Antwort: Der folgende Code ersetzt den Code des Originalplakats und zeigt die beste Lösung.

$args = [
    'post_type' => 'post',
    'tax_query' => [
        [
            'taxonomy' => 'actor',
            'operator' => 'NOT EXISTS',
        ],
    ],
];
$query = new WP_Query($args);

  • So wie es derzeit geschrieben steht, ist Ihre Antwort unklar. Bitte bearbeiten Sie, um zusätzliche Details hinzuzufügen, die anderen helfen zu verstehen, wie dies die gestellte Frage beantwortet. Weitere Informationen zum Verfassen guter Antworten finden Sie in der Hilfe.

    – Markieren

    28. September 2021 um 11:35 Uhr

  • Diese Antwort wurde als von geringer Qualität gekennzeichnet. Bitte verbessern Sie die Antwort mit weiteren unterstützenden Informationen und einer Erklärung

    – Noam Yizraeli

    28. September 2021 um 13:24 Uhr

  • Keine Ahnung, warum diese Lösung von den Kommentatoren oben markiert wurde. Das Code-Snippet stammt aus dem Code-Beispiel, das vom ursprünglichen Verfasser bereitgestellt wurde (da es um Hilfe gebeten wurde), und wurde geändert, um die richtige Lösung bereitzustellen.

    – Paulus

    29. September 2021 um 14:02 Uhr


Sie können dies versuchen

$args = array(
    'post_type' => 'post',
    'tax_query' =>
        array(
            'taxonomy' => 'actor',
            'field' => 'slug',
            'terms' => '',
    )
);
$query = new WP_Query( $args );

1282760cookie-checkHolen Sie sich alle Beiträge, die KEINE Begriffe mit WP_Query haben

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy