web-dev-qa-db-fra.com

Création d'une metabox pour télécharger plusieurs images

Est-il possible de créer une méta-boîte qui associe plusieurs images à un message?

8
agileapricot

Cela dépend entièrement de ce que vous entendez par "joindre".

Chaque publication WordPress peut déjà avoir plusieurs pièces jointes multimédia - photos, documents, etc. Vous les téléchargez à l'aide de l'outil de téléchargement intégré et elles sont toutes marquées comme "attachées" à cet ID de publication spécifique.

Vous pouvez vous référer à ceux-ci plus tard par programmation ailleurs. Par exemple, le code suivant listera toutes les pièces jointes d'un message spécifique (code de 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);
    }
}

Toutes ces fonctionnalités sont accessibles via le bouton "Ajouter un média" par défaut à l'extrême droite de "Télécharger/Insérer" sur le nouvel écran de publication. Après avoir ajouté une image, vous pouvez cliquer à nouveau sur "Sélectionner les fichiers" et télécharger une deuxième image. Puis un troisième. Puis un quatrième. Autant que vous voulez.

Chacune de ces images sera "attachée" à la publication ... même si elles ne sont pas insérées dans le contenu.

7
EAMann

Voici un tutoriel complet avec des fichiers source qui font exactement ce que vous voulez,
Vous pouvez télécharger plusieurs images en clonant le champ de saisie. Vous pouvez également prévisualiser, supprimer des images avec ajax, ajouter plusieurs métaboxes à plusieurs types de publication, etc.

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

6
Philip

Je vous recommande également de consulter http://www.wpalchemy.com . WPAlchemy est une "classe" (proche d'un plugin) permettant d'ajouter facilement des méta-boîtes personnalisées à votre site. Je l'utilise beaucoup et j'ai été impressionné par la facilité d'utilisation et l'engagement du développeur et de la communauté en plein essor.

2
internetross

Oui c'est tout à fait possible. Voir un réponse J'ai eu sur les métaboxes. En gros, vous voudrez simplement ajouter un hook pour save_post et vérifier le champ 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);
0
Zack