Wp-admin文件上载请求中缺少post_id

时间:2015-02-01 作者:mehov

我正在尝试使用编辑器正上方的“添加媒体”按钮上载附件。

请求转到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类型声明中遗漏了什么?

请帮忙

2 个回复
SO网友:mehov

好的,这似乎已经解决了:

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 并确保post_id 包括在内。

摘自here: https://core.trac.wordpress.org/attachment/ticket/22085/media.php.patch

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\'));

结束

相关推荐

撤消定义(‘UPLOADS’,‘’.‘FILES’);以重指向“wp-Content/Uploads”文件夹

是否可以通过使用将“wp content/uploads”设置为使用不同的文件夹define( \'UPLOADS\', \'\'.\'files\' ); 我已经永久有效地更改了所有路径,如果是这样的话,我如何撤消它,使其指向“wp内容/上传”?我认为只要把define( \'UPLOADS\', \'\'.\'files\' ); 我会解决一个问题,我上传到WP的文件不想下载,因为URL不是文件的正确路径。