wpssl.ru wordpress WPSSL.ru

Настройка внутреннего SSL в WordPress для AJAX и REST API без ошибок смешанного контента

При переходе сайта на HTTPS важно обеспечить корректную работу всех AJAX-запросов и REST API вызовов внутри WordPress. Часто возникает проблема смешанного контента (mixed content), когда часть запросов идёт по HTTP, а не по HTTPS, что приводит к ошибкам в консоли браузера и нарушению безопасности.

Почему возникают ошибки смешанного контента в AJAX и REST API запросах WordPress

Ошибки смешанного контента появляются, если URL для AJAX или REST API запросов формируется с протоколом HTTP, а страница загружается по HTTPS. Это может случаться из-за жёстко прописанных ссылок в скриптах, неправильных настроек сайта или некорректной работы плагинов.

Например, при использовании функции admin_url('admin-ajax.php') или REST API URL, если в настройках WordPress указан HTTP, то эти запросы будут строиться с незащищённым протоколом.

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

Проверка и исправление URL для AJAX-запросов в WordPress

Первым шагом убедитесь, что в настройках WordPress (Настройки — Общие) прописаны корректные адреса сайта и WordPress с протоколом https://

Для гарантированной работы AJAX-запросов используйте функцию wpssl_admin_url_ajax для формирования правильного пути:

function wpssl_admin_url_ajax() {
    return admin_url('admin-ajax.php', 'https');
}

Замените вызовы admin_url('admin-ajax.php') на wpssl_admin_url_ajax() в своих скриптах и плагинах.

Также при локализации скриптов через wp_localize_script передавайте AJAX URL с HTTPS:

wp_localize_script('my-script', 'MyAjax', [
    'ajax_url' => wpssl_admin_url_ajax(),
]);

Исправление URL для REST API запросов в WordPress

По умолчанию REST API URL строится через rest_url(). Чтобы убедиться, что ссылки идут с HTTPS, используйте следующий фильтр:

add_filter('rest_url', function($url) {
    return preg_replace('/^http:/', 'https:', $url);
});

Если REST API используется в JavaScript, убедитесь, что базовый URL передаётся с HTTPS, например:

wp_localize_script('my-rest-script', 'MyRest', [
    'root' => esc_url_raw(rest_url()),
]);

При необходимости можно дополнительно проверить, что site_url() и home_url() возвращают HTTPS.

Примеры плагинов для управления SSL и смешанным контентом в WordPress

Для автоматизации решения проблем смешанного контента и работы с SSL можно использовать плагины, совместимые с вашей тематикой:

  • Clearfy Pro — помогает оптимизировать и исправить проблемы с URL, включая SSL.
  • WPRemark — улучшает работу REST API и AJAX с учётом безопасности.

Эти плагины позволяют автоматически подменять URL и устранять смешанный контент без ручного вмешательства.

Дополнительные советы по устранению проблем смешанного контента в AJAX и REST API

1. Проверьте, что в базе данных WordPress все ссылки заменены на https://. Для этого можно использовать плагин Clearfy Pro или WP CLI команду search-replace.

2. Убедитесь, что в шаблонах и плагинах не используются абсолютные URL с http://.

3. При работе с кэшированием проверьте, что кэш правильно отдаёт версии с HTTPS.

4. Используйте инструменты разработчика браузера для отслеживания запросов и выявления источников смешанного контента.

Как вручную исправить AJAX и REST API в custom скриптах

Если вы пишете собственные JavaScript решения, обязательно используйте динамическое получение URL через PHP, чтобы гарантировать HTTPS:

function wpssl_enqueue_scripts() {
    wp_enqueue_script('custom-ajax', get_template_directory_uri() . '/js/custom-ajax.js', ['jquery'], null, true);
    wp_localize_script('custom-ajax', 'wpsslData', [
        'ajax_url' => wpssl_admin_url_ajax(),
        'rest_url' => esc_url_raw(rest_url()),
    ]);
}
add_action('wp_enqueue_scripts', 'wpssl_enqueue_scripts');

В JavaScript обращайтесь к wpsslData.ajax_url и wpsslData.rest_url — они гарантированно будут с HTTPS.

Таким образом, продуманная настройка внутренних URL для AJAX и REST API запросов в WordPress поможет избежать многих ошибок смешанного контента и повысит безопасность сайта с SSL.

×
WordPress
дай сайту суперсилу!

Скидки на топовые темы и плагины

Активировать суперсилу ⋙