2017-03-14 3 views
0

Also habe ich diese Funktion, um alle untergeordneten Seiten aufzulisten, und ich möchte, dass es keine Elemente auflistet, die kein benutzerdefiniertes Feld "role" haben benutzerdefiniertes Feld ist leer. Ich habe verschiedene Dinge ausprobiert, aber selbst wenn ich Wert oder Metawert "Test" eintippe, werden alle Seiten aufgelistet. Mit dieser Abfrage stimmt etwas nicht. Meta_key funktioniert einwandfrei, aber meta_value funktioniert nicht.Untergeordnete Seiten nur auflisten, wenn das spezifische benutzerdefinierte Feld auf diesen Seiten nicht leer ist

Mein Funktionscode ist dies:

function list_child_pages() { 
    $args = array(
     'numberposts' => -1, 
     'post_type'  => 'page', 
     'meta_key'  => 'role', 
     'meta_value' => 'test', 
    ); 
    $the_query = new WP_Query($args); 
    if ($the_query->have_posts()) { 
     return list_childs(); 
    } else 
     $string="team members were not found"; 
    return $string; 
} 
+0

, wie etwa in der Schleife, können Sie, wenn (Get_Field ('Rolle')) {// echo Ihre Sachen hier} – Stender

Antwort

2
'meta_query' => [ 
    'relation' => 'AND', 
    [ 
     'key'  => 'role', 
     'value' => 'test', 
     'compare' => '=' 
    ] 
], 

Ich ziehe [] statt array()

zu verwenden, aber Sie auch

'meta_query' => array(
    'relation' => 'AND', 
    array(
     'key'  => 'role', 
     'value' => 'test', 
     'compare' => '=' 
    ) 
), 

Integration mit Ihrem Beispiel haben:

$args = array(
    'numberposts' => -1, 
    'post_type'  => 'page', 
    'meta_query' => array(
     'relation' => 'AND', 
     array(
      'key'  => 'role', 
      'value' => 'test', 
      'compare' => '=' 
     ) 
    ), 
); 

Versuchen Sie, die Dokumentation des Class WP_Meta_Query an zu lesen: https://codex.wordpress.org/Class_Reference/WP_Meta_Query#Initializing_WP_Meta_Query

Verwandte Themen