Функция the_ID() не имеет параметров — это значит, что ее всегда нужно использовать только в цикле, иначе она прост ничего не выведет.
Если вам нужно получить ID поста, но при этом не нужно его сразу же выводить, воспользуйтесь функцией get_the_ID().
the_ID()  | 
Примеры
<p>ID поста: <?php the_ID(); ?></p>  | 
Задействование в качестве HTML-атрибута id:
<?php while( have_posts() ) : the_post(); ?> <a href="<?php the_permalink() ?>" id="permalink-<?php the_ID() ?>"><?php the_title() ?></a> <?php endwhile; ?>  | 
Тут важно помнить одну вещь — сам HTML-атрибут id не должен начинаться с цифры, поэтому перед использованием функции the_ID() в атрибуте добавьте какую-нибудь букву или слово.
Источник: misha.blog