基于 meta_value 的具有 post ID 的 WordPress Return 数组

WordPress Return array with post ID's based on meta_value

我正在尝试找出一些我认为应该相当容易的东西。我有名为 'include-in-nav' 的自定义字段。我正在使用 wp_nav_menu() 创建菜单:

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

                ) 
        ); 

我试图根据 'include-in-nav' 是否为真来获取带有 post id 的数组。我试过 get_posts() 和 WP_query() 但无论我尝试什么,似乎都没有 return 具有 post ID 的数组。有什么建议吗?

-编辑我尝试获得 $post_ids:

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

$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;

除了我们的 sql 查询之外,没有。

您可以将 wp_query 与嵌套在其中的元查询一起使用。这将 return 发布。您将需要像往常一样循环浏览帖子

您需要的查询示例:

$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; ?>

注意:从那里你也可以用你的 ID 填充一个数组.. 如果你真的真的需要一个只有你的 ID 的数组。

玩得开心!希望这可以帮助你解决 m8!