cmb2是一个WordPress插件,用于创建自定义元字段。file_list是cmb2元字段类型之一,用于在WordPress后台添加多个文件。
要以编程方式将照片从具有多个文件输入的前端添加到cmb2元字段类型file_list,可以按照以下步骤进行操作:
function my_custom_metabox() {
$cmb = new_cmb2_box( array(
'id' => 'my_metabox',
'title' => 'My Metabox',
'object_types' => array( 'post' ), // 可以根据需要更改对象类型
) );
$cmb->add_field( array(
'name' => 'Photos',
'id' => 'my_photos',
'type' => 'file_list',
) );
}
add_action( 'cmb2_admin_init', 'my_custom_metabox' );
<form method="post" enctype="multipart/form-data">
<input type="file" name="my_photos[]" multiple>
<input type="submit" value="Upload">
</form>
if ( isset( $_FILES['my_photos'] ) ) {
$files = $_FILES['my_photos'];
foreach ( $files['name'] as $key => $name ) {
if ( $files['error'][$key] == 0 ) {
$file = array(
'name' => $name,
'type' => $files['type'][$key],
'tmp_name' => $files['tmp_name'][$key],
'error' => $files['error'][$key],
'size' => $files['size'][$key],
);
$upload = wp_handle_upload( $file, array( 'test_form' => false ) );
if ( isset( $upload['url'] ) ) {
$photo_url = $upload['url'];
// 将文件URL添加到cmb2元字段
$photos = get_post_meta( get_the_ID(), 'my_photos', true );
$photos[] = $photo_url;
update_post_meta( get_the_ID(), 'my_photos', $photos );
}
}
}
}
以上代码假设你正在处理WordPress的文章页面。你可以根据需要更改对象类型和元字段名称。
这样,当你在前端的表单中选择并上传照片时,照片将被保存到WordPress媒体库,并且文件URL将被添加到cmb2元字段类型file_list中。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云