2012-12-12 11 views
6

Próbuję zaimplementować na pierwszej stronie Uploader Wordpress, który daje użytkownikowi możliwość przesłania obrazu ze strony Wordpress, a także zmiany rozmiaru zdjęć przed przesłaniem. Znalazłem Agile Uploader. Przesyłający jest w formie.Agile Uploader Implementacja Wordpressa

Problem polega na tym, że klikam przycisk przesyłania w formularzu, aby wysłać dane, wszystkie pola są przechowywane w poście, ale obrazy nie.

Oto kod na mojej stronie przesyłania:

<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> 

i kod dla Wordpress (`s przesłać w tym samym pliku)

/* 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; 
     } 
    } 
    } 
} 

Co robię źle?

+0

Tak więc problemem jest zapisanie całego formularza? – janw

+0

tak, to jest problem –

+1

wszelkie komunikaty o błędach ?, sprawdź konsolę firebug i opublikuj tutaj, aby uzyskać szybką odpowiedź –

Odpowiedz

0

Czy jesteś pewien, że obrazy nie zostały zapisane jako "Załącznik" do utworzonego wpisu?

spróbuj uruchomić:

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

W pliku szablonu, którego używasz do wyświetlenia tego posta. Jeśli nie masz doświadczenia z kodowaniem, możesz użyć wtyczki do wyświetlania załączonych plików. Podoba mi się ta wtyczka "List Attachments Shortcode".

0

To może być trochę proste i może nie być twoim problemem, ale brakuje ci końcówki nawiasów klamrowych (}) po if ($attach_id < 0) { $post_error = true;.

Czy jest to w twoim prawdziwym kodzie, czy po prostu zapomniałeś wpisać to pytanie powyżej?

Powiązane problemy