Ich habe ein WordPress-Formular-Plugin und benutze es media_handle_upload
, um die Dateien hochzuladen und die IDs direkt abzurufen, und habe die IDs als Metadatum an den Post angehängt. Dazu habe ich Folgendes verwendet:
Der HTML-Code des Formularfelds lautet:
<input type="file" name="my_file_upload" id="my_file_upload">
Und der PHP-Code war:
$attach_id = media_handle_upload( 'my_file_upload', $post_id );
if ( is_numeric( $attach_id ) ) {
update_post_meta( $post_id, '_my_file_upload', $attach_id );
}
Und alles hat perfekt funktioniert.
Jetzt versuche ich, mehrere Dateien hochzuladen. Mein HTML-Code lautet:
<input type="file" name="my_file_upload[]" id="my_file_upload[]" multiple="multiple">
Ich kann die media_handle_upload
Funktion jedoch nicht für das Hochladen mehrerer Dateien verwenden.
Jede Hilfe wird geschätzt.
Antworten:
Hier, wenn Sie eine benutzerdefinierte Vorlage verwenden, die am Anfang darüber liegt
in function.php
soure http://www.kvcodes.com/2013/12/create-front-end-multiple-file-upload-wordpress/
quelle
media_handle_upload()
sucht nach$_FILES[$file_handler]
Wenn Sie dies implementieren möchten, ohne die Funktionsdatei zu verwenden, können Sie die optimierte Version verwenden, die ich mir ausgedacht habe. Dies ist der getestete Code funktioniert 100%
Platzieren Sie den PHP-Code auf der Seite, auf der die Übermittlung erfolgt. In meinem Fall auf der gleichen Seite wie die Formularaktion ist auf "#" gesetzt
Diese Methode schließt die erforderlichen Dateien nur einmal ein, wenn das Senden des Formulars abgeschlossen ist, anstatt sie jedes Mal einzuschließen, wenn die Funktion über die foreach-Schleife aufgerufen wird
quelle
$post_thumbnail_id = wp_get_attachment_image_src($attachment_id, array(800, 600));
da er für das Beispiel unnötig ist. Aber wenn Sie die URL des Bildes erhalten möchten, wird es Ihnen helfen :)Danke @ shady-m-rasmy Ich habe den Code verwendet, den Sie erwähnt haben, und es scheint, dass die zweite foreach-Schleife (unten - im benutzerdefinierten Vorlagenteil) nicht erforderlich ist, da sie nur einmal ausgeführt wird.
Also geht es nur mit
quelle
Mehrere Einträge für denselben Metaschlüssel
quelle