2017-07-11 4 views
0

Ich habe ein Problem mit WP_Query:Wordpress: WP_Query mit page_id UND meta_query

Ich brauche eine Liste von einem benutzerdefinierten Post-Typen mit einem benutzerdefinierten Meta erhalte Schlüssel scuola_data_approved=1 OR post_id=1208

habe ich versucht, die folgende Abfrage zu manipulieren, aber ich kann nicht eine funktionierende Lösung finden:

$args = array 
(
'post_type' => 'scuole', 
'posts_per_page' => -1, 
'relation' => 'OR', 
'page_id'=>1208, 
'meta_query' => array 
( 
    'relation' => 'OR', 
    array(
     'key'  => 'scuola_data_approved', 
     'value' => '1', 
     'compare' => '=' 
    ), 

), 

); 

Antwort

1

Das wird nicht funktionieren Sie WP_Query grundsätzlich Missverständnisse sind. Wenn Sie den Parameter page_id verwenden, werden die Ergebnisse automatisch auf einen einzigen Beitrag beschränkt. Der Beitrag mit der ID 1208. Und dieser Beitrag wird nur abgerufen, wenn es von post_type page ist.

Es gibt nichts wie 'relation' => 'OR' für WP_Query - dies ist nur in Meta-und Steuer-Abfragen möglich. Und dort ist es nutzlos, wenn Sie mindestens zwei verschiedene Aspekte haben, die Sie abfragen möchten. Folgendes tun

Um alle Beiträge abzurufen, wie Sie es in Ihrer Frage beschreiben:

$args1 = array 
(
'post_type' => 'scuole', 
'posts_per_page' => -1, 
'meta_query' => array 
( 
    array(
     'key'  => 'scuola_data_approved', 
     'value' => 1, 
     'type' => 'numeric', 
     'compare' => '=' 
    ) 
) 
); 

$all_posts_i_need = array_merge(get_posts($args1),array(get_post(1208)); 

Weitere Informationen hier: https://codex.wordpress.org/Class_Reference/WP_Query

+0

es Ihnen danken! es funktioniert –

Verwandte Themen