如何从WP_QUERY循环中获取帖子ID?

时间:2016-01-15 作者:ShoeLace1291

我有一个WP\\u查询循环,可以获取特定类型的帖子。这些帖子有自定义的帖子元,所以我需要能够在不回显的情况下获取帖子的ID,这样我就可以显示该帖子的元。我怎样才能在没有回音的情况下获得帖子的ID?这是我的代码:

$menu_id = get_the_id();
        $category_args = array(
            \'post_type\' => \'category\',
            \'post_parent\' => $menu_id
        );

        $menu_categories = new WP_Query($category_args);
        while($menu_categories->have_posts()) : $menu_categories->the_post(); 
            $category_id = ??????; ?>
        <h4><?php echo the_title(); ?></h4><?php 

            $dish_args = array(
                \'post_type\' => \'dish\',
                \'post_parent\' => $category_id
            );
            $category_dishes = new WP_Query($dish_args);
            while($category_dishes->have_posts()) : $category_dishes->the_post(); 
                $dish_meta = get_post_meta(???????);?>
            <h6><?php echo the_title(); ?> - <?php echo $dish_meta[0][\'price\']; ?></h6>
            <p><?php echo the_content(); ?></p><?php
            endwhile;
        endwhile; 

2 个回复
SO网友:N00b

get_the_ID() 只能在循环中使用。

这将检索ID 循环处理的当前post的。

如果只需要一次,您可以自己使用:

$dish_meta = get_post_meta( get_the_ID(), \'dish_meta\', true );
如果多次需要,也可以将其存储为变量:

$post_id = get_the_ID();

$dish_meta = get_post_meta( $post_id, \'dish_meta\', true );

$drink_meta = get_post_meta( $post_id, \'drink_meta\', true );

print_r( $post_id );

//etc
参考:get_the_ID()

SO网友:YoJey Thilipan

get\\u函数将为您提供post ID。。,

            $args = array(

                          \'s\' => $_POST[\'search_text\'],
                          \'posts_per_page\' => -1,
                          \'post_type\' => \'address\'

                     );

            $query = new WP_Query( $args );

            if ( $query->have_posts() ) {

               while ( $query->have_posts() ) {

                    $query->the_post();

                    $address_post_id = get_the_ID() ;
               }
            }

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在