web-dev-qa-db-fra.com

Comment puis-je faire un champ personnalisé choisir une image?

J'ai besoin d'un moyen de créer un champ personnalisé qui me permettra de choisir une image dans la médiathèque. Comment je fais ça?

Le champ personnalisé devrait avoir un bouton qui, une fois cliqué, me mènera à la médiathèque et placera l'URL de destination src dans une zone de texte de saisie.

je cherche un plugin ou un tutoriel en ligne et j'ai peu de chance.

4
Kevin

Il y a quelques semaines, j'ai ajouté une fonctionnalité similaire à Magic Fields .

Voici le projet github . La chose la plus importante est dans ce fichier: js/custom_fields/media_image.js

2
hunk

En utilisant l'un des plugins qui le font déjà:

http://wordpress.org/extend/plugins/custom-field-template/

1
scribu

Pour moi, cela ressemble à la fonctionnalité post_thumbnail dans WordPress. Il ajoutera une boîte sur le côté droit, sous la boîte à balises. Par défaut, la boîte affiche un lien "Définir l'image sélectionnée".

Lorsque vous cliquez dessus, la galerie multimédia s'ouvre et vous pouvez choisir une photo que vous avez précédemment téléchargée dans le message en tant que photo sélectionnée.

Vous pouvez ensuite utiliser:

if (has_post_thumbnail()) {
  the_post_thumbnail();
}

dans votre thème pour afficher l'image sélectionnée.

Pour activer post_thumbnail, il vous suffit d'ajouter:

add_theme_support( 'post-thumbnails' );

à la fonction.php de votre thème

1
Ben

Pour répondre à votre question un peu de côté, êtes-vous ouvert à une alternative? Je suggère d'ajouter une photo à un message, de le classer dans une catégorie spécifique pour vos images et éventuellement, en fonction de vos besoins, d'ajouter un champ personnalisé ne contenant que du texte pour récupérer cette image.

$image = get_posts('cat=the_category&meta_key=the_key&meta_value=the_value');
foreach($image as $img){
    setup_postdata($img);
    //whatever your markup is...
    echo '<p>'.the_content().'</p>';
    //or
   echo '<p>'.$img->post_content.'</p>';
}

Juste une pensée...

0
kevtrout