php - 有没有办法通过前端文件上传来更新 Wordpress 中的自定义字段?
问题描述
我正在尝试使用从前端表单上传的文件来更新自定义 WordPress 字段。
例子:
<form action="submit"><input type="file" name="file_upload"><button type="submit">Submit</button></form>
现在我正在寻找更新 WordPress 中名为“file_upload”的自定义字段(文件上传)的 php 代码,该字段具有特定 ID 的帖子。我使用的插件是“高级自定义字段”。
编辑:
我通过 PhP 中的 $_FILES 请求获取文件:
$file_upload = $_FILES['file_upload'];
然后我尝试通过这种方法处理上传:
$file_upload_id = media_handle_upload( $file_upload, 0 );
这是正确的方法吗?
解决方案
Wordpress 有一个内置的上传功能,它返回您需要更新字段的附件 id,建议使用 nonce 字段来验证它是正确的位置。
if (
isset( $_POST['my_image_upload_nonce'], $_POST['post_id'] )
&& wp_verify_nonce( $_POST['my_image_upload_nonce'], 'my_image_upload' )
) {
require_once( ABSPATH . 'wp-admin/includes/image.php' );
require_once( ABSPATH . 'wp-admin/includes/file.php' );
require_once( ABSPATH . 'wp-admin/includes/media.php' );
$attachment_id = media_handle_upload( 'my_image_upload', $_POST['post_id'] );
if ( is_wp_error( $attachment_id ) ) {
update_field('image', $attachment_id, $_POST['post_id']);
} else {
// The image was uploaded successfully!
}
} else {
// The security check failed, maybe show the user an error.
}
推荐阅读
- html - 寻求帮助以使 HTML/CSS 表单灵活
- opengl - 是否可以将 Mat4 作为 rust 'glam' crate 中的浮点指针传递给 Opengl 调用 gl::UniformMatrix4fv?
- laravel - Laravel Livewire 使用 flatpickr
- triggers - Azure 管道触发器
- python - 用变量名序列化一个python dict
- pine-script - 多个条件的交易视图 Pine 脚本
- vim - 我在哪里可以从 gVim 获得白色配色方案?
- c# - 列表只能在MVC中存储一项?
- intel-oneapi - 找不到迁移的 dpcpp 输出文件,并且 dpct 响应为“不需要迁移”
- python - FourSquare API 可以提供历史数据吗?