Мой сайт требует использования https для всего img src HTML.
Это функция WordPress, которую я использую для отображения изображений:
<img src="'.get_bloginfo("template_url").'/images/thumb-default.gif" />
Это выводит http img src — как я могу преобразовать его в https?
WordPress проверяет возвращаемое значение
is_ssl()
перед созданием URL-адресов с использованиемget_bloginfo()
. Если функция возвращает значение true, она создает URL-адреса https. Если он возвращает false, он создает URL-адреса http.Из исходников WordPress…
Итак… если запрос был сделан через https или если запрос поступил через порт 443, то
get_bloginfo()
будет возвращенhttps://
URL-адрес. На самом деле, если вы все равно принудительно используете https, вы должны принудительно перенаправлять все запросы на порт 80 (http) на порт 443 (https)… но это проблема конфигурации сервера, а не проблема WordPress.В качестве альтернативы вы можете подключиться к фильтру и заменить http на https…
Просто используйте:
URL-адрес страницы в моем браузере — https, но ссылки img src — http.
@Ryan, это ненормальное поведение, я проверил, и в таком случае должна быть сгенерирована ссылка https… дополнительные подробности см. В ответе EMann.
Вы имеете в виду WordPress 3.5? Это так, это здорово!
Проверяли ли вы это при запросе страницы через
http
илиhttps
ссылку? Чтоis_ssl()
возвращается для вас?На данный момент у меня нет стека с поддержкой SSL для тестирования, но я уверен, что функции WP, которые объединяют ссылки, должны знать о SSL и выводить правильную версию.
Использование функции home_url() автоматически обнаружит ssl и изменит протоколы.
Чтобы добавить к исправлению, предложенному EAMann, я внес некоторые изменения в версию 3.5:
Я хотел бы отметить, что это перенаправление может быть очень полезным, но мой сервер перенаправляет SSL на другой порт и не обнаруживается WP, поэтому для меня это раздражает.