@reaget

Как загрузить изображение в метабокс WordPress?

Здравствуйте!
У меня есть необходимость создать свой метабокс с возможностью загрузки и сохранения изображений.
Метабокс выглядит так.
5f0b2197740a4870131443.png

У меня 2 загвоздки:
Первая, как выбранные данные сохранить и в последующем показывать их в метабокс?
Вторая, как сделать возможность удаления ненужных и фотографий и загрузки дополнительных фото?

У меня есть код загрузки изображений в медиафайлы, но как сделать то же самое с метабокс, пока не знаю (впервые с этим столкнулся)

Прошу помочь)

Код метабокс:
function meta_gallery() {
	    add_meta_box('uploader-gallery', 'Галерея', 'print_gallery', 'post', 'normal', 'high');
	}

	add_action( 'admin_menu', 'meta_gallery' );
	function print_gallery($post) {
	    wp_nonce_field( basename( __FILE__ ), 'seo_metabox_nonce' );

        $html .= '<div class="box__wrapper">';
    	$html .= '	    <div class="box">';
    	$html .= '	        <div class="box__input">';
    	$html .= '	            <svg class="box__icon" xmlns="http://www.w3.org/2000/svg" width="50" height="43" viewBox="0 0 50 43"><path d="M48.4 26.5c-.9 0-1.7.7-1.7 1.7v11.6h-43.3v-11.6c0-.9-.7-1.7-1.7-1.7s-1.7.7-1.7 1.7v13.2c0 .9.7 1.7 1.7 1.7h46.7c.9 0 1.7-.7 1.7-1.7v-13.2c0-1-.7-1.7-1.7-1.7zm-24.5 6.1c.3.3.8.5 1.2.5.4 0 .9-.2 1.2-.5l10-11.6c.7-.7.7-1.7 0-2.4s-1.7-.7-2.4 0l-7.1 8.3v-25.3c0-.9-.7-1.7-1.7-1.7s-1.7.7-1.7 1.7v25.3l-7.1-8.3c-.7-.7-1.7-.7-2.4 0s-.7 1.7 0 2.4l10 11.6z"></path></svg>';
        $html .= '              <input class="box__file" accept="image/*" type="file" name="files[]" id="file" data-multiple-caption="{count} files selected" multiple />';
        $html .= '              <label for="file"><strong>Выберите файл</strong><span class="box__dragndrop"> или перенесите его сюда</span></label>';
        $html .= '              <!--<button class="box__button" type="submit">Загрузить</button>-->';
        $html .= '        </div>';
    	$html .= '	</div>';
		$html .= '  <div class="box__preview"></div>';
    	$html .= '</div>';

		echo $html;
	}

		/*
		 * Этап 3. Сохранение
		 */
	function save_gallery_data( $post_id ) {
			// проверяем, пришёл ли запрос со страницы с метабоксом
	    if ( !isset( $_POST['seo_metabox_nonce'] )
	        || !wp_verify_nonce( $_POST['seo_metabox_nonce'], basename( __FILE__ ) ) )
		return $post_id;
			// проверяем, является ли запрос автосохранением
		if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) 
		    return $post_id;
			// проверяем, права пользователя, может ли он редактировать записи
		if ( !current_user_can( 'edit_post', $post_id ) )
		    return $post_id;
			// теперь также проверим тип записи	
		$post = get_post($post_id);
		
		return $post_id;
	}

	add_action('save_post', 'save_gallery_data');
  • Вопрос задан
  • 44 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы