Intereting Posts
Как переопределить php-классы моего плагина с дубликатами, которые находятся в моей папке с дочерними темами Новости и Лучшее изображение Как подключиться к незарегистрированному экземпляру виджета? Почему кнопка загрузки мультимедиа не находится на главной панели инструментов и может ли она быть помещена туда вместо этого? Лучший способ диагностировать, какие плагины / темы используют большую часть памяти? wp_customize set_transient за исключением предварительного просмотра как получить изображение после прикрепления в полном размере? Не можете найти плагины в меню для wordpress 3.2? Фильтровать сообщения от автора, выбранные на странице Заказывать сообщения по (иерархическим обычаям) таксономии и терминам детей Как открыть диалог добавления медиа в определенном состоянии / вкладке? Теги в WordPress 3.2 Временная бесконечная переадресация Как ограничить содержание сообщения и удалить изображение с него Понимание add_rewrite_rule

SSL: Как сделать изображения пользовательских настроек? Относительно в WordPress?

Я пытаюсь устранить «смешанный контент» на своем веб-сайте и сделал это со всеми областями сайта, кроме одного.

Любое изображение, загруженное с помощью Customizer темы, не является протоколом относительно https, все изображения, загруженные с помощью настраивателя, выходят «http: //».

Настройщик использует загрузчик Media Gallery, но, похоже, не действует таким же образом. Если я загружу изображение в галерею мультимедиа (без настройки), разместите его на странице, WP знает, следует ли переключаться между http и https, хотя, когда то же самое происходит с помощью функции настройки темы:

$wp_customize->add_setting('slide_img_upload_one'); $wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, 'slide_img_upload_one', array( 'label' => __('Upload first image:', 'example_theme'), 'section' => 'carousel_slide_section', 'settings' => 'slide_img_upload_one', 'description' => 'Upload your first slider image here.' ))); 

Я не могу получить WP_Customize_Image_Control(); для вывода «https» или (наилучшего сценария) протокола relative // url для изображения для соответствия SSL.

Некоторые вещи, чтобы отметить. Я не собираюсь использовать SSL на своем веб-сайте, поэтому в настройках -> Общие; Я не изменяю URL-адрес от протокола http.

Я также не ищу способ использовать .htaccess, чтобы заставить это действие.

В нижней строке, ДОЛЖЕН быть способ для изображений, загруженных с помощью настраивателя тем, чтобы относиться к протоколу, мне нужна помощь в том, чтобы понять это. В настоящее время я запускаю WP 4.6 (да, я знаю, что немного отстаю).

Надеюсь, кто-то другой столкнулся с этим, так как часы исследований и разработок оказались бесполезными в попытках решить что-то конкретное, как WordPress theme customizer func's.

Заранее спасибо за любую помощь, идеи, мозговой штурм … все идеи приветствуются!

Я вызываю функцию customizer на странице, используя:

 <a href="<?php echo esc_url(get_theme_mod('slide_one_link')); ?>"><img src="<?php echo esc_url( get_theme_mod( 'slide_img_upload_one' ) ); ?>" alt="<?php echo get_theme_mod( 'slide_title_1' ); ?>" /></a> 

FYI: Я пробовал решение здесь безрезультатно: неудачная попытка

Я думаю, что более простым решением было бы создать вашу собственную функцию:

 function get_theme_mod_img($mod_name){ return str_replace(array('http:', 'https:'), '', get_theme_mod($mod_name)); } 

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

 <a href="<?php echo esc_url(get_theme_mod('slide_one_link')); ?>"><img src="<?php echo esc_url( get_theme_mod_img( 'slide_img_upload_one' ) ); ?>" alt="<?php echo get_theme_mod( 'slide_title_1' ); ?>" /></a> 

есть еще одно решение, которое включает фильтры, как вы можете видеть здесь, и здесь применяются фильтры:

 return apply_filters( "theme_mod_{$name}", $mods[$name] ); $mods[ $name ] = apply_filters( "pre_set_theme_mod_{$name}", $value, $old_value ); 

но вам нужно будет добавить фильтр для каждой настройки изображения:

 add_filter('theme_mod_my-setting-image-name', 'function_that_strips_protocol'); 

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

Мне нужна была дополнительная проверка.

 /** * * @param Checks for ssl returns https if needed * @param int $p * @return filter */ function get_theme_mod_ssl($mod_name){ if (is_ssl()) { return str_replace(array('http:', 'https:'), '', get_theme_mod($mod_name)); }else{ return get_theme_mod($mod_name); } }