Звучит так, как будто вы пытаетесь получить контент поста за пределами цикла.
Если вы посмотрите на шаблон сообщения для темы, например 2017 , именно этот бит творит волшебство. Нет необходимости передавать ID сообщения:
<?php
while ( have_posts() ) : the_post();
get_template_part( 'components/page/content', 'page' );
// If comments are open or we have at least one comment, load up the comment template.
if ( comments_open() || get_comments_number() ) :
comments_template();
endif;
endwhile; // End of the loop.
?>
например. Вы должны просто быть в состоянии сделать:
<?php
while ( have_posts() ) : the_post();
the_content();
endwhile; // End of the loop.
?>
Может быть, стоит начать с кода, указанного выше, или скопировать файл single.php для используемой вами темы и использовать его в качестве основы для пользовательской страницы сообщения?