2015-09-09 79 views
2

所以我建立我自己的WordPress主題,我包括能夠改變網站標誌的設置。WordPress的文件沒有上傳在主題設置

這是註冊處理上載功能部分:

add_settings_field("logo", "Logo", "logo_display", "theme-options", "section"); 
register_setting("section", "logo", "handle_logo_upload"); 

這是應該處理給定的文件處理函數:

function handle_logo_upload() 
{ 
    if (! function_exists('wp_handle_upload')) { 
     require_once(ABSPATH . 'wp-admin/includes/file.php'); 
     } 

     $uploadedfile = $_FILES['file']; 

     $upload_overrides = array('test_form' => false); 

     $movefile = wp_handle_upload($uploadedfile, $upload_overrides); 

     if ($movefile && !isset($movefile['error'])) { 
      echo "File is valid, and was successfully uploaded.\n"; 
      var_dump($movefile); 
     } else { 
      /** 
      * Error generated by _wp_handle_upload() 
      * @see _wp_handle_upload() in wp-admin/includes/file.php 
      */ 
     echo $movefile['error']; 
    } 

    return 'stringaz';  
} 

這是主題面板看起來像:http://pasteboard.co/uwC3Qmi.png

在這裏你可以看到,處理程序不工作,因爲正在呈現一個名爲「stringaz」字符串,其中標誌應當如下:http://pasteboard.co/vsnqkay.png

我需要做什麼改變給處理函數來得到這個代碼運行?

乾杯!

回答

0

你可以試試這個,它的例子,你應該改變自己的變量名和一切:

if(!empty($_FILES['user_image']["name"])) 
{ 
    if($_FILES['user_image']['type'] == "image/jpeg" || $_FILES['user_image']['type'] == "image/png" || $_FILES['user_image']['type'] == "image/jpg") 
    { 
     $wp_upload_dir = wp_upload_dir(); 
     $target_file = $wp_upload_dir['path']."/".$_FILES['user_image']["name"]; 
     $target_file1 = $wp_upload_dir['url']."/".$_FILES['user_image']["name"]; 
     if (move_uploaded_file($_FILES['user_image']["tmp_name"], $target_file)) 
      update_user_meta($current_user->ID, 'cupp_upload_meta', $target_file1); 
     else 
      $errmsg = "Sorry, there was an error uploading your file."; 
    } 
    else 
    { 
     $errmsg = "Image file have not valid extension."; 
    } 
}