Добавьте <?php the_post(); ?>
куда нибудь вверх вашего кода, например под <?php get_header( 'page' ); ?>
и всё должно заработать.
Если чуть более подробно, то функция the_post() устанавливает очень много внутренних надстроек.
Обычно пишут цилкл, но на страницах, где отображается одна запись, обычно single.php, цикл не нужен. Достаточно объявить функцию the_post() перед использованием остальных the функций.
(Хотя некоторые будут работать и без the_post, такие как например the_excerpt)