Intereting Posts
Как добавить новый файл CSS в новый файл PHP Запуск таблиц стилей на отдельных страницах администрирования плагина с использованием плагина WordPress Plugin Как выбрать основную категорию? Есть ли способ вытащить первое изображение в цикле, а не все другие изображения? Полные текстовые статьи в RSS-ленте (т. Е. Без тега) Разбивает ли он GPL, если вы удаляете файл license.txt перед загрузкой? Разрешить конечным пользователям добавлять данные в пользовательский тип сообщения Как заставить пользовательский тип сообщения использовать конкретный шаблон? Наиболее эффективное использование запросов БД Проблема со страницей страниц Разрешить автору контента публиковать, а не редактировать или удалять Вызов различных настраиваемых временных меток в таблице Включить wp-blog-header.php из удаленного вызова functions.php? Как получить comment_ID по post_ID в wordpress Обновление WordPress DATABASE вручную?

Использовать 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, поэтому для меня это раздражает.