Как организовать загрузку нескольких изображений через загрузчик Wordpress?

Добрый вечер!
Есть код, формирующий в настройках WP страницу загрузки изображений. Проблема в том, что он загружает только изображение из первого поля. Помогите с доработкой jQuery скрипта, чтоб организовать загрузку нескольких изображений.
PHP из файла functions.php(подключен стандартный загрузчик изображений WP)
function image_uploader_field( $name, $value = '', $w = 115, $h = 90) {
    $default = get_stylesheet_directory_uri() . '/img/logo.png';
    if( $value ) {
        $image_attributes = wp_get_attachment_image_src( $value, array($w, $h) );
        $src = $image_attributes[0];
    } else {
        $src = $default;
    }
    echo '
	<div>
		<img data-src="' . $default . '" src="' . $src . '" width="' . $w . 'px" height="' . $h . 'px" />
		<div>
			<input type="hidden" name="' . $name . '" id="' . $name . '" value="' . $value . '" />
			<button type="submit" class="upload_image_button button">Загрузить</button>
			<button type="submit" class="remove_image_button button">&times;</button>
		</div>
	</div>
	';
    update_option($name, $value);
}
function sl_print($val){
    if ( isset( $_REQUEST['saved'] ) ){
        echo '<div class="updated"><p>Сохранено.</p></div>';
    }
    ?>
    <form method="post">
			<?
			if( function_exists( 'image_uploader_field' ) ) {
                image_uploader_field($val['name'], get_option($val['id']));
            }
			?>
    </form>
    <?}


JS
jQuery(function($){
    $('.upload_image_button').click(function(){
        var send_attachment_bkp = wp.media.editor.send.attachment;
        var button = $(this);
        wp.media.editor.send.attachment = function(props, attachment) {
            $(button).parent().prev().attr('src', attachment.url);
            $(button).prev().val(attachment.url);
            wp.media.editor.send.attachment = send_attachment_bkp.url;
        }
        wp.media.editor.open(button);
        return false;
    });
    $('.remove_image_button').click(function(){
        var r = confirm("Уверены?");
        if (r == true) {
            var src = $(this).parent().prev().attr('data-src');
            $(this).parent().prev().attr('src', src);
            $(this).prev().prev().val('');
        }
        return false;
    });
});
  • Вопрос задан
  • 335 просмотров
Пригласить эксперта
Ответы на вопрос 1
Gwynbleidd44
@Gwynbleidd44 Автор вопроса
Отбой, нашел ошибку в своем коде.
Для каждого поля создавалась новая форма, как результат при отправке данных - отправлялась только первая
function sl_print($val){
    if ( isset( $_REQUEST['saved'] ) ){
        echo '<div class="updated"><p>Сохранено.</p></div>';
    }
      if( function_exists( 'image_uploader_field' ) ) {
                image_uploader_field($val['name'], get_option($val['id']));
            }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы