我想弄清楚我认为应该相当容易的事情。我有名为'include-in-nav'的自定义字段。我正在使用wp_nav_menu()来创建菜单:
wp_nav_menu( array( 'theme_location' => 'primary',
'menu_id' => 'primary-menu',
'include' => $post_ids
)
);
我试图获得一个带有帖子ID的数组,基于更好的'包含在导航'是真的与否。我已经尝试了get_posts()和WP_query(),但无论我在尝试什么,似乎都没有返回带有帖子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;
答案 0 :(得分:0)
除了我们的sql查询之外,还有其他问题。
你可以将wp_query与嵌套的元查询一起使用。这将返回帖子。你需要像往常那样循环浏览帖子
您需要的查询示例:
$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!