Intereting Posts
Пользовательский таксономический запрос WordPress Локализовать строки из db API настроек – изменение вывода add_settings_field ()? Элементы меню (все меню) удаляются случайным образом по своему усмотрению Shortcode отображает только значения атрибута по умолчанию Как уведомить моих пользователей плагина о выпуске новой версии? Интерполировать get_theme_mod CSS в таблицу стилей? Приложение Ipad: нужно загружать изображения, чтобы перейти в «Галерея», а также «Библиотека мультимедиа», Изображение в WordPress не отображается на главной странице Сила non-ssl на RSS-лентах WordPress в htaccess с использованием cloudflare WordPress / users / me запрещен запрос конечной точки add_page_menu, чтобы сделать ярлык для виджетов Архив категорий в сочетании с пользовательским типом сообщения пуст Запросить сообщения в предопределенном порядке Как я могу получить содержимое сообщения, отображаемое в текстовом поле, которое позволяет редактировать сообщения?

Использовать https для img src

Мой сайт требует использования https для всех img src HTML.

Это функция WordPress, которую я использую для отображения изображений:

<img src="'.get_bloginfo("template_url").'/images/thumb-default.gif" /> 

Это выводит http img src – как я могу преобразовать это в https?

Solutions Collecting From Web of "Использовать https для img src"

WordPress проверяет возвращаемое значение is_ssl() перед созданием URL-адресов с помощью get_bloginfo() . Если функция возвращает true, она создает URL-адреса https. Если он возвращает false, он создает http-адреса.

Из источника WordPress …

 function is_ssl() { if ( isset($_SERVER['HTTPS']) ) { if ( 'on' == strtolower($_SERVER['HTTPS']) ) return true; if ( '1' == $_SERVER['HTTPS'] ) return true; } elseif ( isset($_SERVER['SERVER_PORT']) && ( '443' == $_SERVER['SERVER_PORT'] ) ) { return true; } return false; } 

Итак … если запрос был сделан через https, или если запрос пришел через порт 443, то get_bloginfo() вернет https:// URL. В действительности, если вы все равно форсируете https, вы должны принудительно перенаправить все запросы на порт 80 (http) на порт 443 (https) … но это проблема с конфигурацией сервера, а не с проблемой WordPress.

Кроме того, вы можете подключиться к фильтру и заменить http на https …

Просто используйте:

 function replace_http( $original ) { // use preg_replace() to replace http:// with https:// $output = preg_replace( "^http:", "https:", $original ); return $output; } add_filter( 'template_url', 'replace_http' ); 

Если бы вы проверили это при запросе страницы через http или https ссылку? Что is_ssl() ?

У меня нет проверенного SSL стека, чтобы проверить его, но я уверен, что функции WP, которые объединяют ссылки, должны знать SSL и выводить правильную версию.

Использование функции home_url () автоматически обнаружит ssl и изменит протоколы.

Чтобы добавить исправление, предложенное EAMann, я внес некоторые изменения для версии 3.5:

 add_filter( 'template_directory_uri', function( $original ) { $output = preg_replace( "/^http:/i", "https:", $original ); return $output; }); 

Я хотел бы отметить, что эта перенаправленная вещь может быть очень полезной, но мой сервер перенаправляет SSL на другой порт и не обнаруживается WP, поэтому для меня это раздражает.