Измените изображение в заголовке, загружаемое с помощью jQuery, чтобы использовать HTTPS.

Вопрос или проблема

В моей теме используется изображение заголовка с параллаксом. Как я могу изменить URL изображения заголовка, чтобы оно использовало HTTPS? Я хочу сделать это вручную.

В настоящее время URL выглядит так:

http://example.com/themes/abc/header.jpg

Я хочу изменить его на:

https://example.com/themes/abc/header.jpg

Плагины мне не помогают на этом конкретном файле (они преобразуют другие). Chrome сообщает, что заголовок загружается через jquery.js. Я не знаю, как jQuery делает это.

Я считаю, что редактирование functions.php может помочь, но как это сделать?

Вы рассматривали перезапись протокола? Код ниже преобразует все http: и https: в // для каждого скрипта, ссылки, базы и изображения. Поместите это в ваш functions.php:

add_action( 'plugins_loaded', 'wpse_232287_init' );

function wpse_232287_init() { // Инициализируем функцию
    ob_start( 'wpse_232287_remove_http' );
}

function wpse_232287_remove_http( $buffer ) {
    // Проверяем заголовок Content-Type, применяем переписывание только к "text/html" или неопределенному
    $headers = headers_list();
    $content_type = null;

    foreach ( $headers as $header ) {
        if (strpos( strtolower( $header ), 'content-type:' ) === 0 ) {
            $pieces = explode( ':', strtolower( $header ) );
            $content_type = trim( $pieces[1] );
            break;
        }
    }

    if ( is_null( $content_type ) || substr( $content_type, 0, 9 ) === 'text/html' ) { // Заменяем атрибуты 'href"https://wordpress.stackexchange.com/"src' в тегах script/link/base/img на '//'
        $return = preg_replace( "/(<(script|link|base|img|form)([^>]*)(href|src|action)=[\"'])https?:\\/\\//i", "$1//", $buffer );
        if ( $return ) { // При ошибке регулярного выражения, не перезаписываем содержимое
            $buffer = $return;
        }
    }
    return $buffer;
}

Чтобы изменить URL изображения заголовка на использование HTTPS, вы можете использовать jQuery для изменения элемента, который содержит изображение заголовка, и обновить его атрибут src. Вы можете добавить этот скрипт jQuery в файл js вашей темы или напрямую в нижний колонтитул вашей WordPress темы.

Темы WP уже включают jQuery, но если в вашей его нет, вы можете подключить его в файле functions.php вашей темы.

function my_theme_enqueue_scripts() {
    wp_enqueue_script('jquery');
}
add_action('wp_enqueue_scripts', 'my_theme_enqueue_scripts');

как только jQuery загружен, вы можете добавить скрипт для обновления URL изображения заголовка на использование HTTPS. Используйте файл functions.php в вашей теме (или дочерней теме, если существует) и добавьте этот код ниже.

function add_this_script_footer() { 
?>
<script>
jQuery(document).ready(function($) {
        // Находим элемент изображения заголовка, используя его класс или ID
        var headerImage = $('.parallax-header-image');
    
        // Проверяем, существует ли изображение заголовка
        if (headerImage.length) {
            // Получаем текущий URL изображения
            var imageUrl = headerImage.attr('src');
    
            // Заменяем 'http://' на 'https://' в URL изображения
            var secureImageUrl = imageUrl.replace('http://', 'https://');
    
            // Обновляем URL изображения заголовка на использование HTTPS
            headerImage.attr('src', secureImageUrl);
        }
    });
</script>
<?php } 
add_action('wp_footer', 'add_this_script_footer');

Замените .parallax-header-image на соответствующий селектор для элемента вашего изображения заголовка.

Ответ или решение

Конечно, давайте разберем, как можно изменить URL изображения заголовка на HTTPS, используя jQuery, а также внести необходимые изменения в файл functions.php. В интернете существует множество рекомендаций по улучшению производительности и безопасности сайтов, и переход на HTTPS — одно из таких улучшений. Ниже представлены пошаговые инструкции, которые помогут вам сделать это.

  1. Подключение jQuery: Убедитесь, что jQuery подключён в вашей теме. Многие темы WordPress делают это по умолчанию, но если в вашей теме он не подключен, добавьте следующий код в файл functions.php вашей темы:

    function my_theme_enqueue_scripts() {
       wp_enqueue_script('jquery');
    }
    add_action('wp_enqueue_scripts', 'my_theme_enqueue_scripts');
  2. Замена URL изображения: Теперь, когда jQuery подключен, давайте изменим URL вашего изображения заголовка на HTTPS. Используйте следующий код, добавив его также в файл functions.php:

    function add_this_script_footer() { 
    ?>
    <script>
    jQuery(document).ready(function($) {
       // Найти элемент с изображением заголовка по его классу или ID
       var headerImage = $('.parallax-header-image');
    
       // Проверить, существует ли изображение заголовка
       if (headerImage.length) {
           // Получить текущий URL изображения
           var imageUrl = headerImage.attr('src');
    
           // Заменить 'http://' на 'https://' в URL изображения
           var secureImageUrl = imageUrl.replace('http://', 'https://');
    
           // Обновить URL изображения на HTTPS
           headerImage.attr('src', secureImageUrl);
       }
    });
    </script>
    <?php } 
    add_action('wp_footer', 'add_this_script_footer');

    В этом коде следует заменить .parallax-header-image на соответствующий селектор элемента вашего изображения заголовка.

  3. Тестирование изменений: После внесения изменений сохраните файл, очистите кэш браузера и обновите страницу сайта, чтобы убедиться, что изображение загружается по новому URL с HTTPS.

  4. Внедрение через измененные протоколы: В случае, если в вашем сайте используется поддержка Cloudflare или аналогичных сервисов, рассмотрите возможность внедрения функционала изменения протокола HTTP в HTTPS для всех ресурсов, включая скрипты, ссылки, изображения и т.д., через сервера доставки контента (CDN). Это позволит автоматически конвертировать все ссылки на ресурсы с HTTP на HTTPS.

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

Таким образом, следуя вышеописанным шагам, вы сможете безопасно и эффективно изменить URL изображения заголовка на HTTPS.

Оцените материал
Добавить комментарий

Капча загружается...