Joindre des fichiers Metabox

4

Quelqu'un sait-il comment créer un simple bouton "joindre / parcourir" pouvant être placé dans une métabox qui, en cliquant dessus, ouvrirait une boîte à lumière dans laquelle l'utilisateur pourrait voir tous les fichiers multimédia il veut attacher et cliquer sur un bouton "attacher" en bas. Après avoir cliqué sur "joindre", la publication metabox se mettrait à jour avec tous les fichiers qu'il avait sélectionnés ...

    
posée NetConstructor.com 19.11.2010 - 16:35

3 réponses

2

Pour ouvrir une boîte à lumière, recherchez un élément, puis effectuez-le dans une action: Wordpress a déjà intégré cette fonctionnalité. Ce que vous demandez, c’est essentiellement la "thickbox" qui s’ouvre, comme dans l’éditeur de publication lorsque vous parcourez une image dans la galerie.

Vous trouvez déjà tout le code nécessaire dans wordpress. La seule chose à faire est de collecter le bloc de code un peu plus complexe, de l'intégrer dans un plugin lui-même et de le modifier pour l'adapter à vos besoins. Ces composants ne sont pas très réutilisables en eux-mêmes, il n'y a donc aucune API qui aurait pu vous faciliter la tâche. Eh bien, ce n'est pas vraiment vrai, vous pouvez utiliser tb_show() pour afficher la boîte à lettres par exemple à exemple

Mais dans l’ensemble, ce n’est pas anodin. Vous recherchez probablement quelque chose qui est plus facile à adopter. Je ne sais pas. Une fois, j'ai bricolé avec une grosse boîte < - > la communication post-édition (qui peut être plus complexe avec ce dont vous avez besoin), et il y a beaucoup à penser pour faire des choses. Mais pour le scénario que vous décrivez, il est souvent nécessaire d'indiquer à la page qui ouvre la boîte à épaisseurs de mettre à jour quelque chose après la sélection dans la fenêtre contextuelle.

Pour la métaboxe, vous devriez trouver suffisamment d'extraits de code pour en créer un. Je suis donc presque sûr qu'il existe déjà du code pour cela.

    
réponse donnée hakre 19.11.2010 - 20:54
2

Peut-être que quelque chose ici va aider ..

    

réponse donnée t31os 19.11.2010 - 22:09
1

enlace

Ces gars ont créé une superbe bibliothèque pour les types de champs personnalisés dans WP admin. Je pense que c’est exactement ce que vous recherchez - la création de champs de téléchargement d’image devient une tâche triviale.

Ceci permet de décaler les métaboxes pour tout type de message par programme avec un contrôle précis.

Il y avait une demande pour plus de détails. Au risque de dupliquer les connaissances, voici un exemple tiré de la documentation (avec quelques mods pour utiliser le contrôle de fichier). une metabox image:

function be_sample_metaboxes( $meta_boxes ) {
$prefix = '_cmb_'; // Prefix for all fields
$meta_boxes[] = array(
    'id' => 'test_metabox',
    'title' => 'Test Metabox',
    'pages' => array('page'), // post type
    'context' => 'normal',
    'priority' => 'high',
    'show_names' => true, // Show field names on the left
    'fields' => array(
        array(
            'name' => 'Test Text',
            'desc' => 'field description (optional)',
            'id' => $prefix . 'test_image',
            'type' => 'file'
        ),
    ),
);

return $meta_boxes;
}
add_filter( 'cmb_meta_boxes', 'be_sample_metaboxes' );


add_action( 'init', 'be_initialize_cmb_meta_boxes', 9999 );
function be_initialize_cmb_meta_boxes() {
if ( !class_exists( 'cmb_Meta_Box' ) ) {
    require_once( 'lib/metabox/init.php' );
}
}

Ce que je fais est de mettre ceci dans mon posttype_my_post_type_name.php où je crée le type de post. Exigez ceci à partir du fichier functions.php après avoir requis la bibliothèque metabox.

    
réponse donnée Will 10.09.2012 - 09:47

Lire d'autres questions sur les étiquettes