自定义帖子类型(CPT)附件/媒体是否存储父帖子ID?

时间:2021-09-22 作者:Tracy Shorrock

Do custom post type attachments store the parent post ID, and if so, how do I retrieve it.

我需要在上传的媒体名称前加上CPT帖子的ID,例如123我的文件名。pdf格式

我确实把这个问题贴在了Wordpress.org forum 有人很好心地帮助我,但首先我需要确定我在WORDPRESS中所做的实际上是可能的。我很惊讶我没有找到任何关于这个的片段。

对于那些感兴趣的人,这是我当前的函数代码。php使用WORDPRESS过滤器,不会在文件名前面添加任何内容。

add_filter( \'wp_handle_upload_prefilter\', \'custom_upload_filter\' );
function custom_upload_filter($file) {


   // Get the parent post ID, if there is one
       if( isset($_REQUEST[\'p\']) ) {
           $post_id = $_REQUEST[\'p\'];
      } else {
         $post_id = false;
       }
        
    $file[\'name\'] = $post_id . \'-\' . $file[\'name\'];
    return $file;
}

我很抱歉,如果我在这里发帖也违反了协议。但是,如果我可以确定在创建新帖子和上载文件时获取CPT帖子id是可能的,那么我至少可以继续尝试让代码正常工作。

干杯,特蕾西

1 个回复
SO网友:Tom J Nowell

自定义帖子类型附件

只有附件,这个短语没有意义,也不可能。上载文件时,类型为attachment 已创建。

attachment 通过post parent附加。一attachment 没有post的父对象是未附加的。

ACF将创建一个类型为paper, 其post ID作为父项提供。这里有2个帖子。A.paper post和anattachment 附加到它的帖子。附件只是附件,它们在任何地方都是一样的,不管它所附的帖子是什么类型的。您获取父级的方式与获取任何其他帖子的方式相同,对于CPT不应该有任何特殊的步骤(CPT只是默认情况下不附带WP的帖子类型,自定义部分是您的代码注册了它,而不是核心,否则它们是存储工作,并且以相同的方式工作)。

对于那些感兴趣的人,这是我当前的函数代码。php,导致文件名前面没有添加任何内容。

现在的问题是,您正在尝试与一个定制的第三方插件进行交互,该插件可能提供也可能不提供此帖子ID。

从最严格的意义上讲,唯一规范的通用WordPress答案是,没有后父级attachment 帖子还没有创建,我们不知道。

我很抱歉,如果我在这里发帖也违反了协议。但是,如果我可以确定在创建帖子和上载文件时获取CPT帖子id是可能的,那么我至少可以继续尝试让代码正常工作。

To get the answer/solution you want, you will need ACF help, not WordPress help. 您需要联系ACF支持、ACF开发人员和ACF用户。ACF知道需要附加到哪个帖子,那么它如何知道这些信息呢?这就是你需要问的。

相关推荐

从wp.media.editor.附件获取所选图像URL到文本输入失败。我做错了什么?

我已将媒体按钮作为post meta field 在以下情况下将图像URL插入文本字段Insert Into Page 单击按钮。它一直工作到打开“媒体存储库”窗口、选择“图像”和“插入”为止,但没有向输入字段传递任何值。Expected result结果应该是URL和媒体ID插入为https://avalon.com/dev/wp-content/uploads/2021/01/scp7147prko31.jpg|12 但没有返回值。我可以手动输入URL并保存数据。我彻底扫描了我的代码,并尝试了许多ja