post_id отсутствует в запросе загрузки файла wp-admin

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

Запрос отправляется в файл wp-admin/async-upload.php . Я могу поместить var_dump($_REQUEST); звоните туда.

Всякий раз, когда я загружаю вложение для обычного сообщения, $_REQUEST содержит ключ post_id, и вложение имеет этот пост, сохраненный как parent_post .

Но когда я делаю то же самое для настраиваемого типа сообщений, который я создал, отсутствует ключ post_id . Понятия не имею почему.

Пробовал добавлять точки останова XHR в этот запрос на загрузку, но все они приводят к миниатюрному plupload.full.min.js коду, который кажется абстрагированным от любых данных, передаваемых через него. Я попытался найти точку входа, в которой он запускает загрузку (и, вероятно, имеет какое-то условие о том, следует ли включать идентификатор сообщения), но не смог ее найти.

Скрытый ввод с правильным post_id присутствует на обеих страницах.

Когда я вызываю media_handle_upload('file', $post_id); из любого места в коде файл прикрепляется, как ожидалось.

Почему пользовательские запросы на загрузку типа сообщения пропускают post_id? Я что-то пропустил в объявлении типа сообщения?

Пожалуйста помоги

Solutions Collecting From Web of "post_id отсутствует в запросе загрузки файла wp-admin"

Хорошо, похоже, это исправлено:

 function wp_plupload_include_attachment_id( $params ) { global $post_ID; if ( isset( $post_ID ) ) $params['post_id'] = (int) $post_ID; return $params; } add_filter( 'plupload_default_params', 'wp_plupload_include_attachment_id' ); 

Это препроцессор $params uploader $params и обеспечивает включение post_id .

Взято отсюда : https://core.trac.wordpress.org/attachment/ticket/22085/media.php.patch

Самый сексуальный человек в ответе Ямайки – это исправление.

Для моего использования у меня был специальный экземпляр wp.media с параметром типа, чтобы я мог подключаться к загрузкам и настраивать пути к файлам на основе типа. Это или что-то еще, что я делаю, привело к тому, что post_parent был установлен на ноль для вложений.

Во всяком случае, я немного изменил свои собственные потребности:

 /** * Ensure our custom upload type has a post (parent) ID * Without this attachments have a post_parent of 0 * @since 1.0.0 */ function plupload_params ($params) { global $post; if (isset($post) && $post->post_type == 'my_custom_type') { $params['post_id'] = $post->ID; } return $params; } // End plupload_params() add_filter('plupload_default_params', 'plupload_params'));