2016-07-11 4 views
1

Ich versuche Posts von denen mit Sub-Feld Werte von 'Audi' abzufragen. Ich habe geschaut und geschaut, kann aber keine Antwort finden. Die $ Args, die ich habe, sind unten, und es existieren Posts in der Datenbank, die 'audi' als Wert für das Unterfeld 'Modell' des Repeaters 'Autos' entsprechen.Meta Query Beiträge von Sub-Feld Wert ACF

$args = array(
    'post_type' => 'manufacturers', 
    'meta_query' => array(
     array(
     'key' => 'cars_%_model', 
     'value' => 'audi', 
     'compare' => 'LIKE' 
     ) 
    ) 
); 
$query = new WP_Query($args); 

Irgendwelche Hinweise, wo dieser Code fällt, würde wirklich geschätzt werden.

Antwort

1

ich ein paar Stunden dafür ausgegeben und haben eine Lösung für Sie:

Das erste, was Sie tun müssen, ist die Installation ein Filter, der ‚=‘ Vergleiche mit ‚LIKE‘ Vergleiche (enthalten diese über dem vorherigen Code ersetzt):

function my_posts_where($where) { 
    $where = str_replace("meta_key = 'cars_", "meta_key LIKE 'cars_", $where); 
    // note if using wordpress < v4.8.3 add a % to the meta key like this: meta_key = 'cars_%",... 
    return $where; 
} 

add_filter('posts_where', 'my_posts_where'); 

alles was Sie jetzt tun müssen, ist Update Ihr meta_query Vergleich zu '=':

$args = array(
    'post_type' => 'manufacturers', 
    'meta_query' => array(
     array(
     'key' => 'cars_%_model', 
     'value' => 'audi', 
     'compare' => '=' 
     ) 
    ) 
); 
$query = new WP_Query($args); 

Diese im ACF documentation enthalten ist jedoch t Die Dokumentation erwähnt nicht die Updates nach Wordpress 4.8.3 which is mentioned here.

Verwandte Themen