На сайте функция the_title() возвращает заголовок страницы, хотя насколько мне известно должна возвращать заголовок первого поста. Что я упустил?

Функция the_title() в WordPress на самом деле возвращает заголовок текущей записи, а не заголовок первого поста. Она должна быть использована внутри цикла WordPress, который выполняет запрос к базе данных и получает записи для текущей страницы. Если вы используете the_title() вне контекста цикла WordPress, она вернет заголовок текущей страницы, который установлен в настройках WordPress или был назначен с использованием функции wp_title().

Вот пример использования the_title() внутри цикла WordPress:

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    <h1><?php the_title(); ?></h1>
    <?php the_content(); ?>
<?php endwhile; else : ?>
    <p><?php _e( 'Извините, ничего не найдено.' ); ?></p>
<?php endif; ?>

В этом примере цикл WordPress проверяет, есть ли посты, и если есть, то он проходит через каждый пост и выводит заголовок и содержимое. Функция the_title() будет использоваться для вывода заголовка каждого поста.

Если вы используете the_title() за пределами цикла WordPress, вы получите заголовок текущей страницы, который может быть разным в зависимости от того, какой тип страницы открывается, такой как пост, страница, категория и т. д.

Если вы хотите получить заголовок первого поста вне цикла WordPress, вам нужно будет использовать функцию WP_Query или get_posts() для получения списка постов, а затем использовать the_title() для вывода заголовка первого поста. Вот пример:

<?php
    $args = array(
        'post_type' => 'post',
        'posts_per_page' => 1 // Количество постов для получения
    );

    $query = new WP_Query($args);

    if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post();
        ?>
        <h1><?php the_title(); ?></h1>
        <?php the_content(); ?>
        <?php
    endwhile; endif;

    wp_reset_postdata(); // Сброс данных постов
?>

Этот пример использует WP_Query для получения одного последнего поста и использует the_title() для вывода его заголовка. После этого происходит сброс данных постов с помощью wp_reset_postdata().

Надеюсь, это помогло вам разобраться в использовании функции the_title() в WordPress! Если у вас возникнут еще вопросы, не стесняйтесь задавать их.