Creazione di un metabox per caricare più immagini


Risposte:


7

Dipende interamente da cosa intendi per "attaccare".

Ogni post di WordPress può già avere più allegati multimediali: foto, documenti, ecc. Puoi caricarli utilizzando l'uploader integrato e saranno tutti contrassegnati come "allegati" a quell'ID post specifico.

Puoi fare riferimento a questi più tardi in modo programmatico altrove. Ad esempio, il seguente codice elencherà tutti gli allegati per un post specifico (codice di 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 "Aggiungi media" predefinito all'estrema destra di "Carica / Inserisci" nella schermata del nuovo post. Dopo aver aggiunto un'immagine, è possibile fare nuovamente clic su "Seleziona file" e caricare una seconda immagine. Quindi un terzo. Quindi un quarto. Quanti ne vuoi.

Ognuna di queste immagini sarà "allegata" al post ... anche se non sono inserite nel contenuto.


Per qualche strana ragione, posso ottenere quel codice solo per generare il primo allegato nel modello, anche se il resto è allegato. Qualche idea? Ecco il codice ... dl.dropbox.com/u/497583/code/wp-attactments.txt
agileapricot

È necessario utilizzare alcune variabili diverse. Stai usando entrambi $poste $argsin almeno due contesti diversi, il che rende molto difficile capire esattamente cosa stai cercando di fare in qualsiasi momento. Ma ho testato il codice che ho postato sopra e funziona ...
EAMann,

6

Ecco un tutorial completo con i file sorgente che fanno esattamente quello che vuoi,
Puoi caricare più immagini clonando il campo di input e puoi anche visualizzare in anteprima, eliminare immagini con Ajax, aggiungere multi metabox a più / diversi tipi di post e altro ancora.

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


Io secondo questo. Esso funziona magicamente.
Manny Fleurmond,

Mentre quel link che hai fornito ora è morto, il progetto in riferimento si è trasformato in un plug-in / libreria a pieno titolo per gli sviluppatori. Vedi: wordpress.org/plugins/meta-box e github.com/wpmetabox ... Sembra un ottimo prodotto.
Kerry Randolph,

2

Consiglio anche di dare un'occhiata a http://www.wpalchemy.com . WPAlchemy è una "classe" di culo (vicino a un plugin) per aggiungere facilmente meta box personalizzate al tuo sito. Lo uso ampiamente e sono stato colpito dalla facilità d'uso e dall'impegno della comunità di sviluppatori e fiorenti.


0

Sì è del tutto possibile. Vedi una risposta che ho ricevuto sui metabox. Fondamentalmente, ti consigliamo di aggiungere un hook save_poste 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;
    }

    // Handle the upload here

}
add_action( 'save_post', 'my_save_post_callback', 1, 2);
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.