get_posts() - это аналог query_posts(). Отличается тем, что get_posts() не вмешивается в глобальный запрос WP, а создает отдельный экземпляр класса WP_Query.
Вот только вмешательство почему-то есть.
var_dump(get_the_ID());
// Замена названия товаров на ссылки
$pc = get_posts( array( 'exclude' => get_the_ID(), 'post_type' => 'post' ) );
foreach( $pc as $post){
$changeTitle = str_replace('-', '‑', $post->post_title);
$textContent = str_replace($changeTitle, '<a href="'.$post->guid.'">'.$changeTitle.'</a>', $textContent);
$fulltext = str_replace($changeTitle, '<a href="'.$post->guid.'">'.$changeTitle.'</a>', $fulltext);
}
var_dump(get_the_ID());
Первый var_dump выдаёт 160, другой - 164. Как предотвратить замену get_the_ID()? Понимаю, что можно просто записать её в переменную, но хочется более универсального решения.