2016-03-27 37 views
0

我跟進sitepoint tutorial爲我的選項頁面創建徽標上傳器,但圖片上傳器無法正常工作。wordpress上傳徽標不起作用

這裏的functions.php

function logo_display() 
{ 
    ?> 
     <input type="file" name="logo" /> 
     <?php echo get_option('logo'); ?> 
    <?php 
} 

function handle_logo_upload() 
{ 
    if(!empty($_FILES["demo-file"]["tmp_name"])) 
    { 
     $urls = wp_handle_upload($_FILES["logo"], array('test_form' => FALSE)); 
     $temp = $urls["url"]; 
     return $temp; 
    } 

    return $option; 
} 

function display_theme_panel_fields() 
{ 
    add_settings_section("section", "All Settings", null, "theme-options"); 

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

    register_setting("section", "logo", "handle_logo_upload"); 
} 

add_action("admin_init", "display_theme_panel_fields"); 

回答

1

如果你查看源代碼,你會看到習題的加密類型未設置爲ENCTYPE = 「的multipart/form-data的」。你可以做這樣的事情,下面來改變ENCTYPE

function change_form_enc() { 
     echo "<script type='text/javascript'> 
        jQuery(document).ready(function(){ 
         jQuery('form').attr('enctype','multipart/form-data'); 
        }); 
       </script>"; 
} 



if (is_admin()) { 

    add_action('admin_head', 'change_form_enc'); 
} 
+0

我只是添加代碼'function.php'可惜不行。還要添加'enctype =「multipart/form-data」'來上傳表單。但不能正常工作'' – Radian

+0

你能查看源代碼並查看錶單的enc類型是否已更改輸入類型)也是嵌套在表單標籤中的徽標嗎? – David

0
function logo_display() 
{ 
    ?> 
     <input type="file" id="logo" name="logo" /> 
     <?php echo get_option('logo'); ?> 
    <?php 
} 

function handle_logo_upload() 
{ 
    if(!empty($_FILES["logo"]["tmp_name"])) 
    { 
     $urls = wp_handle_upload($_FILES["logo"], array('test_form' => FALSE)); 
     if ($urls["error"]) 
     { 
      return $urls["error"]; 
     } 
     $temp = $urls["url"]; 
     return $temp; 
    } 
    return get_option('logo'); 
} 
+0

歡迎來到StackOverflow。請提供您需要考慮哪些更改以解決提問者問題的信息,而不是**只是發佈代碼。 –