WordPress как на ладони
wordpress jino

Как по умолчанию включить раздел «создать галерею» при добавлении файла?

Столкнулся с проблемой, думаю как лучше ее решить...

К примеру у меня есть записи для галереи, соответственно там нужно только галерею добавлять, а не просто одно фото. Как сделать так чтобы при нажатии на добавить медиафайл, в появляющемся окошке был выбран сразу раздел "создать галерею". Тк юзеры бывают хуже детей, было решено попробовать систематизировать эту задачу.

Буду раз любой информации на этот счет! думал jquery как то заюзать, но опыта маловато, как осуществить авто выбор "галереи" при клике на кнопку "добавить медиафайл" пока не пойму.

Заранее спасибо!

wildil 9 месяцев назад

решил вопрос

$('.media-menu-item').eq(1).trigger( "click" );
0
wildil 9 месяцев назад
  • 0

    вот небольшой спиппет

    JS

    var $ = jQuery.noConflict();
    $(document).ready(function () {
    	var m_uploader = {
    		run: function () {
    			this.uploader();
    		},
    		uploader: function () {
    			$("[href='#m_photos']").on('click', function (e) {
    				e.preventDefault();
    				var elem = $(this);
    				var input = elem.parent().find("[name='m_photos[images]']");
    				var media_uploader;
    				if (media_uploader) {
    					media_uploader.open();
    					return;
    				}
    				media_uploader = wp.media.frames.file_frame = wp.media({
    					title: 'Choose Image',
    					button: {
    						text: 'Choose Image'
    					},
    					multiple: true
    				});
    				media_uploader.on('select', function () {
    					var length = media_uploader.state().get("selection").length;
    					var images = media_uploader.state().get("selection").models;
    					var ids = [];
    					for (var i = 0; i < length; i++) {
    						ids.push(images[i].id);
    					}
    					input.val(
    						ids.join(',')
    					);
    				});
    				media_uploader.open();
    			});
    		}
    	};
    	$(document).ready(function () {
    		m_uploader.run();
    	});
    });
    

    Его нужно подключить примерно так

         function uploader_scripts() {
    		if ( ! did_action( 'wp_enqueue_media' ) ) {
    			wp_enqueue_media();
    		}
    		wp_enqueue_script( 'myuploadscript', plugin_dir_url( __FILE__ ) . 'public/admin/js/uploader.js', array( 'jquery' ), '1.0.0', false );
    	}
    
    	 function admin_router( $current_screen ) {
    		if ( "post" == $current_screen->post_type ) {
    			add_action( 'admin_enqueue_scripts',  'uploader_scripts'  );
    		}
    	}   
    	add_action( 'current_screen',  'admin_router' );
    

    html -рекомендую запихнуть в метабокс тут на сайте ест рецеп как создать метабокс не буду писать , потому что очень длинно получится

            <p>
    			<a href="#<?php echo $this->uploader_prefix; ?>">
    				Загрузить
    			</a>
    			<br>
    			<input type="text" name="<?php echo $this->uploader_prefix; ?>[instagram_images]" value="<?php echo get_post_meta( $post->ID, 'instagram_images', 1 ); ?>"/>
    		</p>
    
    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Регистрация. Вход.