Домой Wp-Recall WP-Recall: Предложения и идеи Прикрепление загруженных изображений к записи
5ответ(ов) в теме
Preci
не в сети 7 часов
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1643
1
17:37
Версия WP-Recall: 16.10.0

Сейчас если загружать изображения к записи через загрузчик wordpress, при фронтенд публикации записи, они не прикрепляются к посту. Это и понятно, ведь когда изображения загружаются пост еще не создан и их некуда прикреплять.

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

Я нашел вариант решения, но возможно он не лучший и Андрей сделает по другому, но главное что бы сделал.

Я предлагаю в форме публикации создавать скрытый инпут куда добавлять id загруженых изображений и при публикации поста менять им в базе post_parent на id поста.

Вот рабочий вариант:

Добавим инпут и запишем в него id картинок. Для этого надо вставить этот скрипт в /wp-content/plugins/wp-recall/add-on/publicpost/js/scripts.js

jQuery('input[name="form_id"]').after('<input type="hidden" name="uploaded_imgs" value="">');

$.extend( wp.Uploader.prototype, {
        success : function( file_attachment ){
            
			var img_list = jQuery('input[name="uploaded_imgs"]').val();
			
			if(!img_list) {
				jQuery('input[name="uploaded_imgs"]').val(file_attachment.id);
			} else {
				var new_img_list = img_list+','+file_attachment.id;
				jQuery('input[name="uploaded_imgs"]').val(new_img_list);
			}
        }
});

Теперь при публикации поста прикрепим загруженные изображения к записи, вот php функция:

add_action('transition_post_status','attached_img_to_post', 20, 3);

function attached_img_to_post($new_status, $old_status, $post){
	// $post->ID  ID поста
	// $_POST['uploaded_imgs'] список id загруженных картинок
	
	if(!$_POST['uploaded_imgs']) return false;
	
	$img_list = explode(',', $_POST['uploaded_imgs']);
	
	foreach ($img_list as $img) {
		wp_update_post(
			array(
				'ID' => $img, 
				'post_parent' => $post->ID
			)
		);
	}
}

2
Андрей CS
не в сети 1 день
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16855
2
17:48

За подсказку по wp.Uploader.prototype спасибо, как то пытался решить эту задачу, но не понял куда смотреть, взял это за основу, но подход будет действительно другой.
Загруженные изображения для неопубликованной записи должны помещаться во временную галерею пользователя, которая уже существует внутри плагина.
В общем, благодарю, побольше бы таких идейных) в след. обновлении эта задача будет решена.

2
Preci
не в сети 7 часов
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1643
3
18:07

Что за временная галлерея? Не получится конфликтов если, например, юзер в 2 окна будет 2 поста добавлять?

0
Андрей CS
не в сети 1 день
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16855
4
18:53

временная галерея формируется для гостей и юзеров при загрузке изображений к еще неопубликованной записи.

Preci сказал(а)
Не получится конфликтов

не получится

0
Андрей CS
не в сети 1 день
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16855
5
19:00

Андрей CS сказал(а)
не получится

хотя нет, может получится, все изображения будут прикреплены к первой опубликованной записи, но этот вариант из разряда фантастики

0
Вы не имеете права на публикацию сообщений в этой теме