Получение ID записи внутри цикла WordPress при выводе ID страницы
Прошло время с тех пор, как я использовал WordPress, и я пытаюсь работать с Advanced Custom Fields. Я пытаюсь вывести ID записи внутри цикла на странице, чтобы использовать get_field для вывода содержимого записи. $post->ID даёт мне ID страницы, а не ID записи, поэтому выводится неправильное число. Как мне получить ID записи?
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php $current_id = $post->ID ?>
<?php echo $current_id ?>
<h1><?php the_field('titleFart', $current_id); ?></h1>
<?php endwhile; // конец цикла ?>
<?php endif; ?>

Не используйте query_posts
или WP_Query
, если вам нужен основной цикл. И вообще никогда не используйте query_posts
.
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php $current_id = get_the_ID(); ?>
<?php echo $current_id ?>
<h1><?php the_field('titleFart', $current_id); ?></h1>
<?php endwhile; // конец цикла. ?>
<?php endif; ?>
Потому что: get_the_ID()

Пожалуйста, не используйте query_posts()
Примечание: Эта функция не предназначена для использования в плагинах или темах. Как будет объяснено далее, существуют более эффективные и производительные способы изменения основного запроса. query_posts() — это чрезмерно упрощённый и проблематичный способ модификации основного запроса страницы путём его замены на новый экземпляр запроса. Это неэффективно (повторно выполняет SQL-запросы) и может полностью не работать в некоторых случаях (особенно часто при работе с пагинацией записей). Любой современный код WordPress должен использовать более надёжные методы, такие как использование хука pre_get_posts.
В вашем случае вы создаёте дополнительный цикл на странице, поэтому вам нужен новый объект WP_Query
.
$q = new WP_Query(
array(
'posts_per_page' => 5
)
);
if ( $q->have_posts() ) {
while ( $q->have_posts() ) {
$q->the_post();
$current_id = $post->ID;
echo $current_id ?>
<h1><?php the_field('titleFart', $current_id); ?></h1><?php
} // конец цикла.
}

Используйте wp_query() с вашими параметрами вместо этого. Query_posts замедляет выполнение запросов. http://codex.wordpress.org/Class_Reference/WP_Query
