2016-03-27 4 views
0

Я слежу за sitepoint tutorial, чтобы создать загрузчик логотипа для моей страницы параметров, но загрузчик изображений работает неправильно.wordpress upload logo not work

здесь 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

при просмотре источника, вы будете PROB видеть ENCTYPE не установлен ENCTYPE = "многослойную/форма-данные". Вы могли бы сделать что-то, как показано ниже, чтобы изменить 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. Просьба представить информацию о том, какие изменения вы считаете необходимыми, чтобы решить вопрос об афере, а не ** просто ** код публикации. –