Я делаю свой плагин с виджетом, в котором должна загружаться картинка. Вот часть кода для кнопки загрузки в самом виджете:
... <p>
<label for="<?php echo $this->get_field_id('photo'); ?>">Photo URL:</label>
<input class="widefat image_hso" type="text" name="<?php echo $this->get_field_name('photo'); ?>" id="<?php echo $this->get_field_id('photo'); ?>" value="<?php echo $photo ;?>">
</p>
<p>
<button class="image_upload_hso widefat">Select Image</button>
</p> ...
Вот код PHP ниже:
function photo_upload_option($hook) {
if( $hook != 'widgets.php' )
return;
//enque Javasript Media API
wp_enqueue_media();
wp_enqueue_script( 'uploadphoto', plugin_dir_url( __FILE__ ) . 'js/upload_image.js');
}
function register_plugin_styles() {
wp_register_style( 'hso', plugin_dir_url( __FILE__ ) . 'css/style.css' );
wp_enqueue_style( 'hso' );
}
// register widget
add_action('admin_enqueue_scripts', 'photo_upload_option');
add_action('widgets_init', create_function('', 'return register_widget("wp_hso_plugin");'));
add_action( 'wp_enqueue_scripts', 'register_plugin_styles' );
И код файла обработчика JS:
jQuery(function($){
var frame,
addImgLink = $('.image_upload_hso'),
imgIdInput = $('.image_hso');
addImgLink.on( 'click', function( event ){
event.preventDefault();
if ( frame ) {
frame.open();
return;
}
frame = wp.media({
title: 'Select or Upload Image',
button: {
text: 'Use this Image'
},
multiple: false
});
frame.on( 'select', function() {
var attachment = frame.state().get('selection').first().toJSON();
imgIdInput.val( attachment.url );
});
frame.open();
});});
Сама проблема: я добавляю виджет в сайдбар, например, захожу в настройки, нажимаю "Select image" и получаю перезагрузку страницы. После этого опять открываю настройки виджета и опять нажимаю выбор картинки и уже медиа библиотека открывается нормально, далее выбираю картинку и сохраняю выбор - ссылку на картинку вытягиваю в свой input и все ок. Нажимаю в виджете Save и все ок, сохраняет, все работает. Но если я сразу опять нажму "Select image" - опять получаю перезагрузку страницы после которой опять нормально открывает медиа библиотека. Что не так?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как выключить фоновый scrolling при открытии модального окна на css или js?
У меня есть три страницы с одинаковым header(сделан blade-шаблоном Laravel) с svg-иконкой и кнопкой менюС главной страницы можно перейти на две другие
Как можно сделать ссылку на почту, что б при нажатии на нее, открывалась страница почты, а имеено на страницу "написать /отправить письмо",...
В интернете нашел, что настройка 404-й страницы происходит с помощьюhtaccess - файла