2014-02-18 3 views
0

У меня есть пользовательская форма для публикации сообщений. Когда новое сообщение сначала создается, нет существующего идентификатора сообщения, поэтому прикрепление фотографий к сообщению не работает до тех пор, пока сообщение не будет сохранено и для этой записи будет создан идентификатор.назначить почтовый идентификатор новому объекту wp.media

Первое, что я сделал, это инициировать автоматическое сохранение, чтобы создать почтовый идентификатор для представления нового сообщения. Тем не менее, я не могу понять, как обновить объект wp.media с этим новым идентификатором, чтобы загруженные сообщения присваивались идентификатору, созданному во время автоматического сохранения.

Есть ли способ повторно инициализировать объект wp.media новым идентификатором сообщения?

редактировать

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

https://github.com/thomasgriffin/New-Media-Image-Uploader/blob/master/js/media.js

обновление

Похоже, я был в состоянии передать пост идентификатор объекта wp.media просто делать это:

wp.media.model.settings.post.id = new_id; 

Однако сейчас у меня возникают некоторые проблемы с разрешением. Как администратор, все работает нормально, но как и любой другой пользователь, я получаю сообщение об ошибке «Ошибка при загрузке. Повторите попытку позже».

Загрузка прекращается со всеми пользователями после сохранения сообщения, но по какой-то причине он не позволяет загружать с пользователями, не являющимися администраторами, после назначения нового идентификатора объекту wp.media.

R

ответ

0

Наконец-то разобрался.

AJAX используется для инициирования автоматического сохранения в фоновом режиме, когда пользователь редактирует сообщение. Когда автосохранение ID возвращается, он вновь назначен на объект wp.media так:

wp.media.model.settings.post.id = autos_save_id; 

Вопрос разрешения я испытывал пришел из того простого факта, что моя роль пользователя не было " edit_post '. Duh.

+0

Ха, я сделал ту же ошибку оператора. Я только собирался опубликовать предложение о подключении и переназначении/обновлении JS obj. Хорошо быть на одной волне. –

0

Если я помню исправить СМИ имеет идентификатор так же, как сообщение/страницы. Редактор/система связывает медиа для публикации.

Когда я загрузить изображение (медиа) в местный разработчика отредактировать его с помощью:

site.com/wp-admin/post.php?post=19&action=edit 

Где 19 является медиа-ID.

Если я перейду на сайт site.com/?p=19, я перешлю на сайт site.com/?attachment_id=19 и узнаю о средствах массовой информации.

Относительно публикации/страницы (пользовательская форма) - при правильном выполнении, при первом сохранении (отправке) сообщение получает идентификатор. Этот идентификатор остается прежним. (остерегайтесь идентификаторов автосохранения и т. п.).

Узнайте больше о том, что вы знаете о "объекте wp.media", или дайте мне знать, если я что-то пропустил?

+0

wp.media - это объект javascript, который обрабатывает медиа-загрузчик.Например, при нажатии кнопки «Добавить медиа» при редактировании сообщения. Мои вопросы: как сообщить объекту wp.media, какой идентификатор сообщения присоединяться к загрузкам? Перед автоматическим сохранением этот идентификатор равен 0, после автоматического сохранения мне нужно передать идентификатор объекту wp.media. – HWD

+0

Прохладный thx для уточнения. Я не помешал W/JS так же. Итак, как вы сказали, сразу после автоматического сохранения вы получаете идентификатор сообщения. W/image upload Я схватил это из формы сообщения/многочастности: '' 'name =" post_id "25''' делает пару ключ/значение: post_id: 25. После публикации? P = 25 возьмет меня на почту. Это, по-видимому, подтверждается источником: https://github.com/WordPress/WordPress/blob/master/wp-admin/async-upload.php#L75 - поэтому отправка «post_id» в $ _REQUEST ($ _POST) должно заставить его придерживаться. –

+0

Спасибо за помощь. Проблема, с которой я сталкиваюсь, заключается в повторной инициализации объекта javascript wp.media, не требуя от пользователя публиковать или сохранять сообщение. У меня есть идентификатор сообщения после автоматического сохранения, теперь как передать его в wp.media через javascript? Стандартный экран сообщений WordPress, кажется, делает это просто отлично, я просто не могу понять, как ... – HWD

Смежные вопросы