我正在尝试使用编辑器正上方的“添加媒体”按钮上载附件。
请求转到wp-admin/async-upload.php
文件我可以放一个var_dump($_REQUEST);
打电话到那里。
每当我上传一篇普通帖子的附件时$_REQUEST
包含post\\u id键,附件将该帖子另存为parent_post
.
但当我对自己创建的自定义帖子类型执行相同操作时post_id
缺少密钥。我不知道为什么。
尝试向该上载请求添加XHR断点,但它们都会导致最小化的plupload。满的min.js代码,似乎是从通过它的任何数据中抽象出来的。我试着搜索它开始上传的入口点(可能对是否包含帖子id有一些条件),但找不到它。
具有正确post_id
在两页上都有。
当我打电话时media_handle_upload(\'file\', $post_id);
从代码中的其他地方,文件会按预期附加。
为什么自定义post类型上载请求会忽略post\\u id?我是否在post类型声明中遗漏了什么?
请帮忙
SO网友:Michael Thompson
The Sexiest Man in Jamaica\'答案是修复。
对于我的使用,我有一个自定义wp。具有类型参数的媒体实例,以便我可以连接到上载并根据类型调整文件路径。我所做的这些或其他事情导致附件的post\\u 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\'));