Creare un metabox per caricare più immagini

12 gen 2011, 19:10:22
Visualizzazioni: 17.6K
Voti: 8

È possibile creare un metabox che permetta di allegare più immagini a un articolo?

1
Commenti

Esiste un tutorial completo per caricare diverse immagini aggiungendo meta-box a un post, pagina o tipo di post personalizzato su http://www.emenia.es/plugin-subir-imagenes-campo-personalizado-wordpress/ È in spagnolo, ma sono riuscito a farlo funzionare senza problemi.

User User
14 dic 2011 14:43:49
Tutte le risposte alla domanda 4
2

Dipende interamente da cosa intendi con "allegare".

Ogni articolo di WordPress può già avere più allegati multimediali - foto, documenti, ecc. Puoi caricarli utilizzando il caricatore integrato e saranno tutti contrassegnati come "allegati" a quel specifico ID dell'articolo.

Puoi farvi riferimento successivamente in modo programmatico altrove. Ad esempio, il seguente codice elencherà tutti gli allegati per un articolo specifico (codice da Snipplr):

$args = array(
    'post_type' => 'attachment',
    'numberposts' => null,
    'post_status' => null,
    'post_parent' => $post->ID
);
$attachments = get_posts($args);
if ($attachments) {
    foreach ($attachments as $attachment) {
        echo apply_filters('the_title', $attachment->post_title);
        the_attachment_link($attachment->ID, false);
    }
}

Tutte queste funzionalità sono accessibili tramite il pulsante predefinito "Aggiungi media" all'estrema destra di "Carica/Inserisci" nella schermata del nuovo articolo. Dopo aver aggiunto un'immagine, puoi fare clic su "Seleziona file" nuovamente e caricare una seconda immagine. Poi una terza. Poi una quarta. Quante ne vuoi.

Ognuna di queste immagini sarà "allegata" all'articolo... anche se non sono inserite nel contenuto.

12 gen 2011 19:28:14
Commenti

Per qualche strana ragione riesco a ottenere solo il primo allegato in output nel template, anche se gli altri sono allegati. Qualche idea? Ecco il codice... http://dl.dropbox.com/u/497583/code/wp-attactments.txt

agileapricot agileapricot
12 gen 2011 23:14:30

Devi utilizzare alcune variabili diverse. Stai usando sia $post che $args in almeno due contesti diversi, il che rende molto difficile capire esattamente cosa stai cercando di fare in ogni momento. Ma ho testato il codice che ho pubblicato sopra e funziona...

EAMann EAMann
12 gen 2011 23:30:02
2

Ecco un tutorial completo con i file sorgente che fanno esattamente quello che desideri,
Puoi caricare più immagini clonando il campo di input e inoltre puoi visualizzare in anteprima, eliminare immagini con ajax, aggiungere più metabox a tipi di post multipli/diversi e molto altro.

http://www.deluxeblogtips.com/2010/05/howto-meta-box-wordpress.html

12 gen 2011 19:57:30
Commenti

Sono d'accordo. Funziona perfettamente.

Manny Fleurmond Manny Fleurmond
13 gen 2011 07:05:58

Anche se il link che hai fornito non è più attivo, il progetto in questione si è evoluto in un plugin/libreria completo e sviluppatore-friendly. Vedi: https://wordpress.org/plugins/meta-box/ e https://github.com/wpmetabox ... Sembra un ottimo prodotto.

Kerry Randolph Kerry Randolph
21 mag 2019 16:33:09
0

Consiglio inoltre di dare un'occhiata a http://www.wpalchemy.com. WPAlchemy è una "classe" (simile a un plugin) davvero eccezionale per aggiungere facilmente meta box personalizzati al tuo sito. La utilizzo ampiamente e sono rimasto colpito dalla sua facilità d'uso e dall'impegno dello sviluppatore e della comunità in crescita.

12 gen 2011 23:35:22
0

Sì, è assolutamente possibile. Vedi una risposta che ho ricevuto riguardo le metabox. Fondamentalmente, dovrai solo aggiungere un hook per save_post e verificare il campo nonce.

function my_save_post_callback( $post_id, $post )
{
    if ( empty($_POST) || !isset($_POST['my_custom_metabox']) || !wp_verify_nonce( $_POST['my_custom_metabox'], plugin_basename( __FILE__ ) ) )
    {
        return $post->ID;
    }

    // Gestisci l'upload qui

}
add_action( 'save_post', 'my_save_post_callback', 1, 2);
12 gen 2011 19:23:09