Как получить ID текущей записи пользовательского типа записи в цикле, используя шаблон single-{custom type}.php?
У меня есть шаблон пользовательского типа записи, где я перебираю все записи. Я пытаюсь получить ID текущей записи в цикле, когда перехожу на страницу своего пользовательского типа записи.
Поэтому я попытался проверить, совпадает ли постоянная ссылка для записи внутри цикла, и если она совпадает, я получу ID текущей записи в цикле.
Вот код, который я попробовал
Сначала пытаюсь получить постоянную ссылку снаружи, чтобы проверить её внутри цикла
$permalink = get_permalink();
Теперь у меня есть постоянная ссылка текущей записи, и я хочу получить ID текущей записи
if($query->have_posts()) :
while ($query->have_posts()) : $query->the_post();
if(the_permalink()==$permalink){
echo get_the_ID();
}else{
echo "не найдено";
}
endwhile;
wp_reset_postdata();
endif;
Я попробовал это в single-{custom-post-name}.php
и получаю не найдено
.
Может кто-нибудь подсказать способ получить ID текущей записи в этом шаблоне?
Итак, у вас есть два цикла: основной цикл и второй, использующий $query
.
Вы хотите сравнить, совпадает ли текущий пост (внутри цикла) с обрабатываемым постом внутри цикла $query
в какой-то момент.
Я правильно понял?
Вместо проверки постоянных ссылок я бы предложил проверить ID.
Итак, в первом цикле вы создаете переменную с ID текущего поста:
$current_post_id = $post->ID;
а во втором цикле просто сравниваете:
if($query->have_posts()) : while ($query->have_posts()) : $query->the_post();
if( $current_post_id === $post->ID ) {
echo $post->ID;
} else {
echo "not found";
}
endwhile; wp_reset_postdata(); endif;
Не уверен, что это то, что вам нужно, дайте нам знать.
PS: Стоит добавить более специфичное имя для вашего запроса, чтобы избежать конфликтов имен с плагинами или чем-то еще, например $my_prefix_query

Вы правы, я искал то же самое. Раньше я не знал, как использовать стандартный цикл have post. Я думал, что он будет получать все записи. Но когда я попробовал, то понял, что он получает текущую запись. Поэтому я использовал get_the_id()
, присвоил значение переменной и затем использовал её в цикле запроса. Спасибо, @Simon
