Создание настройки для изменения заголовка страницы в WordPress через админку

В WordPress часто возникает необходимость давать пользователю возможность легко менять заголовок страницы без правки кода темы. В этой статье мы подробно разберём, как создать собственную настройку в разделе «Настройки» админки WordPress, которая позволит изменять заголовок страницы динамически. Такой подход полезен, например, если вы создаёте кастомную тему или плагин и хотите упростить настройку сайта для конечного пользователя.

Почему важно создавать пользовательские настройки в WordPress

По умолчанию WordPress предоставляет базовые настройки для сайта, но для гибкой настройки заголовков страниц приходится вмешиваться в код темы или плагина. Создание собственной страницы настроек — это удобный и правильный способ дать пользователю возможность управлять сайтом без риска сломать что-то.

Кроме того, подобный функционал повышает удобство работы с сайтом и позволяет централизованно управлять важными параметрами.

Добавление страницы настроек в админку WordPress

Для начала создадим страницу настроек в админке, куда пользователь сможет вводить желаемый заголовок.

Используем функцию add_options_page для добавления раздела в меню «Настройки».

function wpclass_add_settings_page() {
    add_options_page(
        'Настройки заголовка', // Название страницы
        'Заголовок страницы',   // Текст меню
        'manage_options',       // Права доступа
        'wpclass-title-settings',  // Уникальный slug
        'wpclass_render_settings_page' // Колбэк для отображения страницы
    );
}
add_action('admin_menu', 'wpclass_add_settings_page');

В колбэке wpclass_render_settings_page мы выведем форму для ввода нового заголовка.

Рендеринг страницы настроек

Создадим функцию, которая выведет простую форму с полем ввода:

function wpclass_render_settings_page() {
    // Проверка прав пользователя
    if (!current_user_can('manage_options')) {
        return;
    }

    // Обработка сохранения настроек
    if (isset($_POST['wpclass_title_nonce']) && wp_verify_nonce($_POST['wpclass_title_nonce'], 'wpclass_save_title')) {
        if (isset($_POST['wpclass_page_title'])) {
            update_option('wpclass_page_title', sanitize_text_field($_POST['wpclass_page_title']));
            echo '<div class="updated notice"><p>Настройки сохранены.</p></div>';
        }
    }

    $title = get_option('wpclass_page_title', 'Стандартный заголовок');
    ?>
    <div class="wrap">
        <h1>Настройки заголовка страницы</h1>
        <form method="post" action="">
            <input type="hidden" name="wpclass_title_nonce" value="<?php echo wp_create_nonce('wpclass_save_title'); ?>">
            <table class="form-table" role="presentation">
                <tr>
                    <th scope="row"><label for="wpclass_page_title">Заголовок страницы</label></th>
                    <td>
                        <input name="wpclass_page_title" type="text" id="wpclass_page_title" value="<?php echo esc_attr($title); ?>" class="regular-text">
                        <p class="description">Введите заголовок, который будет отображаться на странице.</p>
                    </td>
                </tr>
            </table>
            <input type="submit" class="button button-primary" value="Сохранить">
        </form>
    </div>
    <?php
}

Вывод настроенного заголовка в теме

Чтобы использовать эту настройку на фронтенде, нужно вывести сохранённый заголовок в нужном месте темы. Обычно это делается в файле header.php или в шаблоне страницы.

Добавим в нужное место следующий код:

<?php
$title = get_option('wpclass_page_title', 'Стандартный заголовок');
echo '<h1>' . esc_html($title) . '</h1>';
?>

Так заголовок будет динамически меняться в зависимости от значения из настроек.

Автоматизация с помощью хука

Если нужно менять заголовок автоматически, можно использовать фильтр the_title или wp_title. Пример для фильтра the_title:

function wpclass_filter_the_title($title, $id = null) {
    if (is_admin()) {
        return $title;
    }
    $custom_title = get_option('wpclass_page_title');
    if ($custom_title && is_page($id)) {
        return $custom_title;
    }
    return $title;
}
add_filter('the_title', 'wpclass_filter_the_title', 10, 2);

Этот код заменит заголовок страницы на сохранённый в настройках, если страница текущая.

Расширение функционала: использование плагина Clearfy Pro для управления заголовками

Для более продвинутого управления SEO-заголовками и мета-тегами можно использовать плагин Clearfy Pro. Он позволяет гибко редактировать заголовки, описания и другие мета-данные, а также оптимизировать сайт без правки кода.

Вместе с нашей настройкой можно сделать интеграцию, чтобы значение из нашей настройки автоматически передавалось в Clearfy Pro для SEO.

Советы по безопасности и валидации

Обязательно используйте sanitize_text_field для очистки пользовательского ввода, как показано в примере выше. Это защитит сайт от XSS и других уязвимостей.

Также используйте wp_verify_nonce для проверки формы, чтобы исключить CSRF-атаки.

Не давайте права на изменение настроек пользователям без соответствующих ролей, например, используйте current_user_can('manage_options').

Итог

Создание собственной настройки для изменения заголовка страницы в WordPress — задача вполне посильная даже для начинающего разработчика. Это улучшает удобство использования сайта и даёт гибкость без необходимости постоянно править код темы.

В статье приведён полный пример создания страницы настроек, обработки формы, вывода значения на сайте, а также советы по безопасности и расширению функционала с помощью популярных плагинов.

Как сделать автоматический откат обновлений в WordPress при ошибках
12.01.2026
Как удалить неиспользуемые метаданные и оптимизировать базу данных WooCommerce
14.05.2026
Как автоматически удалять старые версии постов в WordPress
18.03.2026
Как добавить автоматическое обновление плагинов в WordPress без сторонних библиотек
14.12.2025
Как изменить URL структуру таксономии в WordPress без потери SEO
17.02.2026