2016-11-29 2 views
0

Ich versuche, etwas herauszufinden, das sollte ziemlich einfach sein, denke ich. Ich habe benutzerdefinierte Felder namens "include-in-nav". Ich verwende wp_nav_menu() um ein Menü zu erstellen:WordPress Return Array mit Post-IDs auf Meta-Wert

wp_nav_menu(array( 'theme_location' => 'primary', 
         'menu_id' => 'primary-menu', 
         'include' => $post_ids 

       ) 
     ); 

Ich habe versucht, ein Array mit Post-IDs auf, ob basierend zu bekommen ‚sind-in-nav‘ wahr ist oder nicht. Ich habe get_posts() und WP_query() versucht, aber was auch immer ich versuche, nichts scheint ein Array mit Post-IDs zurückgeben. Irgendwelche Vorschläge?

-edit mein Versuch $ post_ids zu bekommen:

$post_ids = get_posts(array(
     'post' 
     'meta_value' => 'include-in-main-nav' 
)); 

und

$nav_posts = array(
     'meta_value' => 'include-in-main-nav' 
)); 

$wp_query = new WP_Query($nav_posts); 

$post_ids = array(); 

while ($wp_query->have_posts()) : $wp_query->the_post(); 
    $post_ids[] = get_the_ID() ; 
endwhile; 
+0

Können Sie Ihren Beitrag mit Code Ihrer Versuche aktualisieren, die Beiträge über get_posts() und WP_query() zu erhalten? –

Antwort

0

auch andere als eine flache unsere SQL-Abfrage, nee.

Sie können die wp_query mit einer Meta-Abfrage geschachtelt verwenden. Dies wird jedoch Beiträge zurückgeben. Sie werden durch die Beiträge Schleife müssen wie gewohnt

Beispiel für eine Abfrage wie die, die Sie brauchen:

$args = array(
'post_type' => 'page', 
'meta_key' => 'include-in-main-nav', 
'meta_query' => array(
    array(
     'key'  => 'include-in-main-nav', 
     'value' => 1, 
     'compare' => '=', 
    ), 
), 
); 
$query = new WP_Query($args); 


if ($query->have_posts()) : ?> 
    <?php while ($query->have_posts()) : $query->the_post(); ?>  
     <!-- MOO! time to display your menu items! --> 
    <?php endwhile; ?> 
<?php endif; ?> 

Anmerkung: Von dort aus können Sie auch ein Array mit IDs füllen .. wenn Sie brauche wirklich ein Array mit nur deinen IDs drin.

Viel Spaß! hoffe das hilft dir m8!

+0

Danke, genau was ich brauchte. Benutzte dies, um tatsächlich noch ein Array mit IDs zu erstellen, damit ich die Funktion wp_nav_menu verwenden kann. – Koba82