要在WordPress前端自定义上传图片文件到媒体库,你可以创建一个自定义表单,允许用户上传文件,并使用WordPress的文件上传功能将文件添加到媒体库。以下是一个基本的步骤:
创建一个前端表单:
使用HTML和可能的JavaScript创建一个前端表单,允许用户选择并上传文件。确保表单包含一个文件输入字段,例如:
处理表单提交:
创建一个处理表单提交的PHP函数。你可以在主题的functions.php文件中添加以下代码来处理表单提交:
function custom_upload_file() {
   if (isset($_FILES['customfile'])) {
       $file = $_FILES['customfile'];
       // 设置上传目录
       $upload_dir = wp_upload_dir();
       // 生成唯一的文件名
       $file_name = wp_unique_filename($upload_dir['path'], $file['name']);
       // 移动文件到上传目录
       move_uploaded_file($file['tmp_name'], $upload_dir['path'] . '/' . $file_name);
       // 添加文件到媒体库
       $attachment = array(
           'post_mime_type' => $file['type'],
           'post_title'     => sanitize_file_name($file['name']),
           'post_content'   => '',
           'post_status'    => 'inherit'
       );
       $attach_id = wp_insert_attachment($attachment, $upload_dir['path'] . '/' . $file_name);
       // 更新附件元数据
       require_once(ABSPATH . 'wpadmin/includes/image.php');
       $attach_data = wp_generate_attachment_metadata($attach_id, $upload_dir['path'] . '/' . $file_name);
       wp_update_attachment_metadata($attach_id, $attach_data);
       // 返回附件ID或其他响应
       echo '文件已成功上传!附件ID为:' . $attach_id;
   }
}
add_action('init', 'custom_upload_file');
显示上传表单:
在你希望用户上传文件的页面上显示前端表单。
这样,当用户使用前端表单上传文件时,文件将被添加到WordPress媒体库,并且你可以获取到附件的ID或执行其他操作,以满足你的需求。确保根据你的具体需求进行适当的安全性检查和错误处理。