2014-04-04 9 views
5

Ich entwickle mein erstes WordPress-Plugin. Es muss nur einem Benutzer ermöglicht werden, ein Logo in einer benutzerdefinierten Vorlage zu ändern und ein Farbschema in der benutzerdefinierten Vorlage zu ändern.Wordpress: Bild in Admin-Optionen hochladen Seite

Ich habe eine Admin-Optionen-Seite erstellt und möchte nun ein Feld hinzufügen, damit ein Benutzer ein Bild hochladen kann. Wie kann ich ein Bild in den Ordner wp-content/uploads hochladen? Bisher habe ich das in einer Tabelle:

<td><input name="logo_image" type="file" id="logo_image" value="" /></td> 

Ist das der richtige Ansatz? Wenn ja, wie leite ich die Datei in den richtigen Ordner? Hat Wordpress nicht seine eigene Art, Datei-Uploads zu verarbeiten?

+0

Es wird das Upload-Medienverzeichnis als leer erstellen, sondern rendert nicht den Standard-Medien Popup-Abschnitt –

Antwort

0

Sie können die eingebaute Funktion von Wordpress

<?php wp_handle_upload($file, $overrides, $time); ?> 

verwenden, um die Datei verschieben automatisch Dies wird auf die Uploads

Ordner oder

Sie Ihre eigene PHP Funktion schreiben können.

Weitere Details finden sich hier ->Wordpress File Upload

13

Fügen Sie diesen Code in Ihre globale benutzerdefinierte Option Funktion.

if(function_exists('wp_enqueue_media')){ 
    wp_enqueue_media(); 
}else{ 
    wp_enqueue_style('thickbox'); 
    wp_enqueue_script('media-upload'); 
    wp_enqueue_script('thickbox'); 
} 

<p><strong>Header Logo Image URL:</strong><br /> 
       <img class="header_logo" src="<?php echo get_option('header_logo'); ?>" height="100" width="100"/> 
       <input class="header_logo_url" type="text" name="header_logo" size="60" value="<?php echo get_option('header_logo'); ?>"> 
       <a href="#" class="header_logo_upload">Upload</a> 

</p>  


<script> 
    jQuery(document).ready(function($) { 
     $('.header_logo_upload').click(function(e) { 
      e.preventDefault(); 

      var custom_uploader = wp.media({ 
       title: 'Custom Image', 
       button: { 
        text: 'Upload Image' 
       }, 
       multiple: false // Set this to true to allow multiple files to be selected 
      }) 
      .on('select', function() { 
       var attachment = custom_uploader.state().get('selection').first().toJSON(); 
       $('.header_logo').attr('src', attachment.url); 
       $('.header_logo_url').val(attachment.url); 

      }) 
      .open(); 
     }); 
    }); 
</script> 

More info

oder

Media uploader in theme and plugin

enter image description here

+0

nicht sicher, wo um das hinzuzufügen ... Das Admin-Menü ist eine PHP-Datei, füge ich einfach die hinzu JS Teil ?? –

+0

hängt diese von Ihrer Funktion für Ihre Einstellung ab. Wie erstelle ich Look hören https://codex.wordpress.org/Creating_Options_Pages –

+0

von dem, was ich verstehe - WordPress empfiehlt stattdessen die Verwendung der Customizer-API ... https://developer.wordpress.org/themes/advanced-topics/customizer -api / –