如何在前端获取文件上传值放入ACF图像字段

时间:2015-05-18 作者:Andrew

我正在尝试上载图像,图像应插入到新帖子中,但即使图像上载成功,我也无法在帖子编辑器中显示图像。这是我的上传按钮:

<input type="file" name="file" id="file">
这是我在php操作表单中添加的代码:

$target = "/www/opt/wp-content/uploads/user-uploads/";
if ($_FILES["file"]["error"] == UPLOAD_ERR_OK) {      
  $tmp_name = $_FILES["file"]["tmp_name"];     
  $name = $_FILES["file"]["name"];    
  move_uploaded_file($tmp_name, "$target/$name");     
}

update_field($field_5559871286b9b, $_FILES, $new_id);
我做错了什么?

3 个回复
SO网友:Zane Taylor

首先,验证文件已成功上载。这个wp_handle_upload 该函数对于上传本身的简单处理非常有用。

上传后,为了将文件附加到ACF字段,您需要process it as a WordPress attachment 以便媒体库和ACF了解它。

最后,在创建附件后,您可以使用attachment ID (与ACF一起field key 还有你的post ID) 要更新ACF字段以使其引用新媒体项,请执行以下操作:

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

SO网友:clap

使用这个代码对我来说很好

/*
 * Function to upload feature image for post on front end form
 */
function insert_attachment( $file_handler,$post_id,$setthumb=\'false\' ) {
    if ( $_FILES[$file_handler][\'error\'] !== UPLOAD_ERR_OK ) {
        return __return_false(); 
    }

    require_once(ABSPATH . "wp-admin" . \'/includes/image.php\');
    require_once(ABSPATH . "wp-admin" . \'/includes/file.php\');
    require_once(ABSPATH . "wp-admin" . \'/includes/media.php\');

    $attach_id = media_handle_upload( $file_handler, $post_id );

    //set post thumbnail if setthumb is 1
    if ( $setthumb == 1 ) {
        update_post_meta( $post_id, \'_thumbnail_id\', $attach_id );
    }

    return $attach_id;
}
“您将在中使用此按钮”<input type="file" name="file" id="file">

SO网友:Dev

其中image是ACF字段的名称。

$image = the_field( \'image\' );
printf( \'<img src="%s" />\', $image );
或者试试看

$image = get_field( \'image\' );

结束

相关推荐

如何在前端获取文件上传值放入ACF图像字段 - 小码农CODE - 行之有效找到问题解决它

如何在前端获取文件上传值放入ACF图像字段

时间:2015-05-18 作者:Andrew

我正在尝试上载图像,图像应插入到新帖子中,但即使图像上载成功,我也无法在帖子编辑器中显示图像。这是我的上传按钮:

<input type="file" name="file" id="file">
这是我在php操作表单中添加的代码:

$target = "/www/opt/wp-content/uploads/user-uploads/";
if ($_FILES["file"]["error"] == UPLOAD_ERR_OK) {      
  $tmp_name = $_FILES["file"]["tmp_name"];     
  $name = $_FILES["file"]["name"];    
  move_uploaded_file($tmp_name, "$target/$name");     
}

update_field($field_5559871286b9b, $_FILES, $new_id);
我做错了什么?

3 个回复
SO网友:Zane Taylor

首先,验证文件已成功上载。这个wp_handle_upload 该函数对于上传本身的简单处理非常有用。

上传后,为了将文件附加到ACF字段,您需要process it as a WordPress attachment 以便媒体库和ACF了解它。

最后,在创建附件后,您可以使用attachment ID (与ACF一起field key 还有你的post ID) 要更新ACF字段以使其引用新媒体项,请执行以下操作:

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

SO网友:clap

使用这个代码对我来说很好

/*
 * Function to upload feature image for post on front end form
 */
function insert_attachment( $file_handler,$post_id,$setthumb=\'false\' ) {
    if ( $_FILES[$file_handler][\'error\'] !== UPLOAD_ERR_OK ) {
        return __return_false(); 
    }

    require_once(ABSPATH . "wp-admin" . \'/includes/image.php\');
    require_once(ABSPATH . "wp-admin" . \'/includes/file.php\');
    require_once(ABSPATH . "wp-admin" . \'/includes/media.php\');

    $attach_id = media_handle_upload( $file_handler, $post_id );

    //set post thumbnail if setthumb is 1
    if ( $setthumb == 1 ) {
        update_post_meta( $post_id, \'_thumbnail_id\', $attach_id );
    }

    return $attach_id;
}
“您将在中使用此按钮”<input type="file" name="file" id="file">

SO网友:Dev

其中image是ACF字段的名称。

$image = the_field( \'image\' );
printf( \'<img src="%s" />\', $image );
或者试试看

$image = get_field( \'image\' );

相关推荐