如何使用高级自定义字段插件更新自定义文件上载域?

时间:2020-01-28 作者:Muhammad Asif Mohtesham

...
$filename = mt_rand( 100,999 ) . \'.pdf\';
$post_id = wp_insert_post( $post_data );

if ( $post_id ) {
    $pdf_field = get_field_object( $fields[\'pdf\'], $post_id, false, true );

    $fields = array(
        \'pdf\' => $pdf_field[\'key\'],
    );

    $pdf_field = array(
        \'title\' => $filename,
        \'filename\' => $filename,
        \'url\' => $uploaded_uri,
        \'mime_type\' => \'application/pdf\',
        \'type\' => \'application\',
        \'subtype\' => \'pdf\',
        \'icon\' => $icon_url,
    );

    update_field( $fields[\'pdf\'], $pdf_field, $post_id );
}
...
功能update_field 返回自定义域的帖子ID。这意味着它正在成功插入自定义域帖子。但是,当我们检查各自的帖子时,文件并没有附加到它。

有什么线索吗?

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

文件上载字段可能返回所有这些值(取决于字段设置),但这些值仅基于媒体库附件。该字段实际上只存储文件附件的ID作为其值。因此,要以编程方式填充文件字段,只需将附件ID设置为字段值。

因此,一旦获得附件ID,您只需执行以下操作:

update_field( \'field_name\', $attachment_id, $post_id );