Как получить ID записи из цикла WP_Query?
16 янв. 2016 г., 01:51:30
Просмотры: 148K
Голосов: 16
У меня есть цикл WP_Query, который получает записи определенного типа. У этих записей есть произвольные мета-данные, поэтому мне нужно получить 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;

ShoeLace1291
360
Комментарии
Все ответы на вопрос
2
0
get_the_ID()
можно использовать (только) внутри цикла (loop).
Эта функция возвращает ID
текущей записи, обрабатываемой в цикле.
Вы можете использовать её напрямую, если она нужна вам только один раз:
$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 );
// и т.д.
Ссылка: get_the_ID()

N00b
2.18K
16 янв. 2016 г. 10:24:53
0
Функция get_the_ID() возвращает 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() ;
}
}

YoJey Thilipan
161
31 авг. 2018 г. 10:42:40
Похожие вопросы