Почему при выводе через echo переменная выводится не там?
Если нужно получить ID, а не выводить его на экран то используйте функцию get_the_ID() или такой код: $post->ID.
Даже не знаю как такое загуглить...
А почитать документацию перед началом работы не нужно?
https://developer.wordpress.org/reference/function...