Php 自定义功能图像从前端上载仅上载文件夹名称

Php 自定义功能图像从前端上载仅上载文件夹名称,php,jquery,ajax,wordpress,file-upload,Php,Jquery,Ajax,Wordpress,File Upload,谢谢你看我的问题 问题 我需要能够上传功能图像(缩略图)是与一个职位,该网站正在工作有能力使从网站前端的职位 实现的自定义代码 在提交后表单中,我使用了file类型的输入元素: <form class="compose-post-form" method="POST" enctype="multipart/form-data"> ... <input type="file" name="featured" id="featured"> ... </

谢谢你看我的问题

问题

我需要能够上传功能图像(缩略图)是与一个职位,该网站正在工作有能力使从网站前端的职位

实现的自定义代码

在提交后表单中,我使用了file类型的输入元素:

<form class="compose-post-form" method="POST" enctype="multipart/form-data">

  ...

 <input type="file" name="featured" id="featured">

 ...


</form>
这是保存缩略图的代码,现在我只是用post ID 22进行测试:

  add_action( 'wp_ajax_thumbnail_up', 't_thumbnail_up' );
  function t_thumbnail_up(){

    $uploaddir = wp_upload_dir();
    $file = $_FILE['featured'];

    $uploadfile = $uploaddir['path'] . '/' . basename( $file['name'] );
    move_uploaded_file( $file['tmp_name'] , $uploadfile );
    $filename = basename( $uploadfile );

    $wp_filetype = wp_check_filetype(basename($filename), null );

    $attachment = array(
      'post_mime_type' => $wp_filetype['type'],
      'post_title' => preg_replace('/\.[^.]+$/', '', $filename),
      'post_content' => '',
      'post_status' => 'inherit',
      'menu_order' => $_i + 1000
      );
    $attach_id = wp_insert_attachment( $attachment, $uploadfile );

    update_post_meta(22, '_thumbnail_id',$attach_id);
    set_post_thumbnail( 22, $thumbnail_id );

    exit();
  }
结果是有些东西被上传了,但似乎只有文件夹名,即11月份的月份号,该文件夹实际上没有在服务器上创建:


非常感谢您对我如何实现此功能的任何帮助。

使用此函数处理来自ajax的文件

<?php
$thumbnail = $_FILES[ 'featured' ];
$thumbnail_id = media_handle_sideload( $thumbnail, $post_id );
set_post_thumbnail( $post_id, $screenshot_id );

谢谢你的建议,似乎不起作用,但我很感激你的回答:)@david mendienta你能告诉我var file=$(“#特色”).val()是什么吗;和$file=$\u file['featured'];返回?返回数组(0){}@david mendienta两者都返回空?这意味着您没有正确获取上传的图像。您可以在上载图像后检查文件字段,并查看图像名称存储的位置。您可能可以使用javascript获取它并将其传递给ajax。如果您需要进一步帮助,请告诉我:))
<?php
$thumbnail = $_FILES[ 'featured' ];
$thumbnail_id = media_handle_sideload( $thumbnail, $post_id );
set_post_thumbnail( $post_id, $screenshot_id );