webentwicklung-frage-antwort-db.com.de

Erweiterte Steuerabfrage

Im Folgenden ist meine Steuerabfrage aufgeführt, die im Moment alle Beiträge zurückgibt, die mindestens einen der angegebenen Begriffe enthalten.

Gibt es eine Möglichkeit, wie ich es nur Beiträge zurückgeben lassen kann, die ALLE der angegebenen Begriffe enthalten?

[tax_query] => Array
    (
        [relation] => AND
        [0] => Array
            (
                [taxonomy] => services
                [field] => term_id
                [terms] => Array
                    (
                        [0] => 3
                        [1] => 10
                        [2] => 6
                        [3] => 9
                    )

                [operator] => IN
            )

        [1] => Array
            (
                [taxonomy] => awards
                [field] => term_id
                [terms] => Array
                    (
                        [0] => 13
                        [1] => 12
                    )

                [operator] => IN
            )

    )
2
Frank Martin

Probieren Sie [operator] => AND in beiden Sub-Arrays aus. Ich denke, das wird funktionieren, wenn ich WP_Tax_Query::get_sql() lese.

7
Chris Carson

Alternativ können Sie die beiden Abfragen in fünf Abfragen unterteilen (je nachdem, wie Sie Ihre Bedingungen erhalten, ist das Codieren möglicherweise sogar einfacher).

Es wäre interessant zu wissen, ob es einen Leistungsunterschied zwischen den beiden Konstruktionen gibt. (@ Frank Martin, oder irgendjemand, es wäre großartig, wenn Sie die tatsächlich generierte SQL auf jede Art und Weise teilen könnten - ich habe diese Antwort als Community-Wiki festgelegt.)

[tax_query] => Array
(
    [relation] => AND
    [0] => Array
        (
            [taxonomy] => services
            [field] => term_id
            [terms] => Array
                (
                    [0] => 3
                )

            [operator] => IN
        )
    [1] => Array
        (
            [taxonomy] => services
            [field] => term_id
            [terms] => Array
                (
                    [0] => 10
                )

            [operator] => IN
        )
    [2] => Array
        (
            [taxonomy] => services
            [field] => term_id
            [terms] => Array
                (
                    [0] => 6
                )

            [operator] => IN
        )
    [3] => Array
        (
            [taxonomy] => services
            [field] => term_id
            [terms] => Array
                (
                    [0] => 9
                )

            [operator] => IN
        )

    [4] => Array
        (
            [taxonomy] => awards
            [field] => term_id
            [terms] => Array
                (
                    [0] => 13
                )

            [operator] => IN
        )
    [5] => Array
        (
            [taxonomy] => awards
            [field] => term_id
            [terms] => Array
                (
                    [0] => 12
                )

            [operator] => IN
        )

)

.

Wie ich bei der Bearbeitung meiner kürzlich gestellten Frage zur erweiterten Taxonomie festgestellt habe, Übergeben von URL-Parametern für erweiterte Taxonomie-Abfragen mit mehreren Begriffen für eine benutzerdefinierte Taxonomie WP wird genau das tun (zumindest unter 3.1.4), wenn Sie die Abfrage über die URL übergeben.

0
marfarma