2012-12-12 12 views
6

Sto cercando di implementare un uploader di Wordpress in prima pagina che offre all'utente la possibilità di caricare un'immagine da una pagina di Wordpress e ridimensionare le immagini prima del caricamento. Ho trovato Agile Uploader. L'autore del caricamento è in una forma.Agile Uploader Implementazione di Wordpress

Il problema è quando faccio clic sul pulsante di invio nel modulo per inviare i dati, tutti i campi sono memorizzati in un post, ma le immagini non.

Ecco il codice per la mia pagina di upload:

<form id="submitForm" action="<?php echo get_permalink(); ?>" method="post" enctype="multipart/form-data" onsubmit="return ray.ajax()"> 
<!-- upload photos --> 

    <div style="float:left;width:410px; height:246px;"> 
    <div id="multiple"></div> 
    </div> 

    <script type="text/javascript"> 
    jQuery('#multiple').agileUploader({ 
     formId: 'submitForm', 
     flashVars: { 
     file_post_var: 'attachment', 
     firebug: false, 
     form_action: '', 
     file_limit: 15, 
     max_post_size: (1000 * 1024) 
     } 
    }); 
    </script> 

    </div> <!-- end - upload photos --> 
</form> 

e il codice per Wordpress upload (`s nello stesso file)

/* upload photos */ 
if ($post_error == false) { 

    /* required files */ 
    require_once(ABSPATH . "wp-admin" . '/includes/image.php'); 
    require_once(ABSPATH . "wp-admin" . '/includes/file.php'); 
    require_once(ABSPATH . "wp-admin" . '/includes/media.php'); 

    $files = $_FILES['attachment']; 

    if ($files) { 

    foreach ($files['name'] as $key => $value) { 
     if ($files['name'][$key]) { 
     $file = array(
      'name' => $files['name'][$key], 
      'type' => $files['type'][$key], 
      'tmp_name' => $files['tmp_name'][$key], 
      'error' => $files['error'][$key], 
      'size' => $files['size'][$key] 
     ); 
     } 

     $_FILES = array("attachment" => $file); 
     //$_FILES = array_reverse($_FILES); 
     foreach ($_FILES as $file => $array) {         
     $attach_id = media_handle_upload($file, $ad_id, array(), array('test_form' => false)); 
     if ($attach_id < 0) { $post_error = true; 
     } 
    } 
    } 
} 

Che cosa sto facendo di sbagliato?

+0

Quindi il problema è il salvataggio dell'intero modulo? – janw

+0

sì, il problema è –

+1

eventuali messaggi di errore ?, controlla la tua console firebug e posta qui per ottenere una risposta rapida –

risposta

0

Sei sicuro che le immagini non vengano salvate come "Allegato" al post creato?

prova ad eseguire:

$attachments = get_posts(array(
'post_type' => 'attachment', 
'posts_per_page' => -1, 
'post_parent' => $post->ID, 
'exclude'  => get_post_thumbnail_id()) 
); 
var_dump($attachments); 

Nel file di modello che si utilizza per visualizzare il post. Se non si ha familiarità con la codifica, è possibile utilizzare un plug-in per mostrare i file allegati. Come questo plugin "List Attachments Shortcode".

0

Questo potrebbe essere un po 'semplice, e potrebbe non essere il tuo problema, ma manca un finale di parentesi graffa (}) dopo if ($attach_id < 0) { $post_error = true;.

È nel tuo codice attuale o hai semplicemente dimenticato di inserirlo nella tua domanda sopra?