webentwicklung-frage-antwort-db.com.de

wp_query mit mehreren benutzerdefinierten Feldern

Meine Abfrage lautet wie folgt:

$products = new WP_Query( array(
        'post_type'      => 'ys_product',
        'orderby'        => array( 'date' ),
        'order'          => 'DESC',
        'posts_per_page' => 8,
        'meta_query'     => array(
            'relation' => 'AND',
            array(
                'key'   => 'ys_product_status',
                'value' => 'ok'
            ),
            array (
                'key'   => 'ys_product_start',
                'value' => date('Ymd'),
                'compare' => '>='
            ),
            array (
                'key'   => 'ys_product_end',
                'value' => date('Ymd'),
                'compare' => '<='
            )
        )
    ) );

Und in meiner Datenbank habe ich zwei Elemente mit post_type 'ys_product' und mit post_meta wie folgt:

Gegenstand 1

  • meta_key ys_product_status = 'ok'
  • meta_key ys_product_start = '20141101'
  • meta_key ys_product_end = '20141230'

Punkt 2

  • meta_key ys_product_status = 'ok'
  • meta_key ys_product_start = '20141101'
  • meta_key ys_product_end = '20150131'

Das heutige Datumsergebnis ('Ymd') ist '20141226', was deutlich zwischen diesen Grenzen zu liegen scheint.

Aber wenn ich nur suche, filtere ich nach 'ys_product_status' == 'ok'; Ich bekomme meine zwei Sachen. Aber wenn ich meine zwei anderen Meta-Werte hinzufüge, werden überhaupt keine Ergebnisse zurückgegeben.

Was mache ich falsch?

Danke und Grüße. (Mit WP 4.1)

2
yivi

Dummer Tippfehler, fürchte ich.

Diese:

array (
            'key'   => 'ys_product_start',
            'value' => date('Ymd'),
            'compare' => '>='
        ),
        array (
            'key'   => 'ys_product_end',
            'value' => date('Ymd'),
            'compare' => '<='
        )

Sollte so sein:

array (
            'key'   => 'ys_product_start',
            'value' => date('Ymd'),
            'compare' => '<='
        ),
        array (
            'key'   => 'ys_product_end',
            'value' => date('Ymd'),
            'compare' => '>='
        )
2
yivi