{"id":24825,"date":"2021-05-25T18:41:00","date_gmt":"2021-05-25T15:41:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24825"},"modified":"2021-10-18T02:13:40","modified_gmt":"2021-10-17T23:13:40","slug":"ajout-d-un-bouton-d-image-personnalise-avec-media-uploader-dans-wordpress","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fr\/ajout-d-un-bouton-d-image-personnalise-avec-media-uploader-dans-wordpress\/","title":{"rendered":"Ajout d&rsquo;un bouton d&rsquo;image personnalis\u00e9 avec Media Uploader dans WordPress"},"content":{"rendered":"<p>R\u00e9cemment, je travaillais sur un plugin o\u00f9 nous voulions utiliser le t\u00e9l\u00e9chargeur multim\u00e9dia par d\u00e9faut de WordPress pour nos besoins. Nous avions un bouton d&rsquo;image personnalis\u00e9 et voulions t\u00e9l\u00e9charger une image via le t\u00e9l\u00e9chargeur de m\u00e9dias. WordPress a magnifiquement construit un t\u00e9l\u00e9chargeur de m\u00e9dias qui permet \u00e0 un utilisateur de t\u00e9l\u00e9charger une nouvelle image ou d&rsquo;utiliser une image existante de la m\u00e9diath\u00e8que.<\/p>\n<p>Il est toujours recommand\u00e9 d&rsquo;utiliser le t\u00e9l\u00e9chargeur multim\u00e9dia int\u00e9gr\u00e9 si vous recherchez une solution personnalis\u00e9e pour t\u00e9l\u00e9charger une image dans le backend. Ce faisant, vous suivez les normes WordPress. La mise en \u0153uvre d&rsquo;un t\u00e9l\u00e9chargeur de m\u00e9dias ne prend que quelques lignes de code. Alors, sans plus de discussion, commen\u00e7ons par cela.<\/p>\n<p>Pour ce tutoriel, j&rsquo;ajouterai un bouton d&rsquo;image personnalis\u00e9 pour la publication et la page. En cliquant sur ce bouton, le t\u00e9l\u00e9chargeur de m\u00e9dias s&rsquo;ouvrira o\u00f9 l&rsquo;utilisateur pourra t\u00e9l\u00e9charger l&rsquo;image. L&rsquo;URL de l&rsquo;image t\u00e9l\u00e9charg\u00e9e est d\u00e9finie dans un champ m\u00e9ta personnalis\u00e9 et sera enregistr\u00e9e en tant que m\u00e9ta de publication pour la publication ou la page sp\u00e9cifique.<\/p>\n<h3>Ajouter une m\u00e9ta-bo\u00eete personnalis\u00e9e dans WordPress<\/h3>\n<p>La m\u00e9ta-bo\u00eete n&rsquo;est rien d&rsquo;autre qu&rsquo;un bloc sur une publication ou une page. Les cat\u00e9gories, les balises, l&rsquo;image en vedette, l&rsquo;extrait, la discussion, etc. sont des exemples de bo\u00eetes m\u00e9ta. En utilisant la zone Meta, vous pouvez ajouter des informations suppl\u00e9mentaires pour le message et la page.<\/p>\n<p>Nous avons besoin d&rsquo;une bo\u00eete m\u00e9ta qui contient le bouton de t\u00e9l\u00e9chargement d&rsquo;image et un champ de texte. Lorsqu&rsquo;un utilisateur clique sur le bouton, il t\u00e9l\u00e9charge l&rsquo;image et l&rsquo;URL de l&rsquo;image finale est d\u00e9finie dans le champ de texte.<\/p>\n<p>L&rsquo;ajout d&rsquo;une <a href=\"https:\/\/developer.wordpress.org\/plugins\/metadata\/custom-meta-boxes\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">m\u00e9ta-bo\u00eete<\/a> est simple et direct. \u00c9crivez le code ci-dessous dans le <code>functions.php<\/code>fichier ou dans votre plugin.<\/p>\n<pre><code>function aw_custom_meta_boxes( $post_type, $post) {\n\u00a0\u00a0\u00a0\u00a0add_meta_box(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'aw-meta-box',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0__( 'Custom Image' ),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'render_aw_meta_box',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0array('post', 'page'), \/\/post types here\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'normal',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'high'\n\u00a0\u00a0\u00a0\u00a0);\n}\nadd_action( 'add_meta_boxes', 'aw_custom_meta_boxes', 10, 2 );\n\u00a0\nfunction render_aw_meta_box($post) {\n\u00a0\u00a0\u00a0\u00a0$image = get_post_meta($post-&gt;ID, 'aw_custom_image', true);\n\u00a0\u00a0\u00a0\u00a0?&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;table&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;tr&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;td&gt;&lt;a href=\"#\" class=\"aw_upload_image_button button button-secondary\"&gt;&lt;?php _e('Upload Image'); ?&gt;&lt;\/a&gt;&lt;\/td&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;td&gt;&lt;input type=\"text\" name=\"aw_custom_image\" id=\"aw_custom_image\" value=\"&lt;?php echo $image; ?&gt;\" style=\"width:500px;\" \/&gt;&lt;\/td&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/tr&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;\/table&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;?php\n}<\/code><\/pre>\n<p>Apr\u00e8s avoir ajout\u00e9 le code ci-dessus, acc\u00e9dez \u00e0 votre article ou \u00e0 votre page et vous devriez pouvoir voir la nouvelle bo\u00eete m\u00e9ta ajout\u00e9e avec leurs champs.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20472-6081f701c7c42.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20472-6081f701c7c42.png\" alt=\"Ajout d&#039;un bouton d&#039;image personnalis\u00e9 avec Media Uploader dans WordPress\" ><\/a><\/p>\n<h3>Personnaliser WordPress Media Uploader<\/h3>\n<p>Vous \u00eates maintenant pr\u00eat avec votre bo\u00eete m\u00e9ta. La prochaine chose est de cliquer sur le bouton \u00ab\u00a0T\u00e9l\u00e9charger l&rsquo;image\u00a0\u00bb, d&rsquo;ouvrir le t\u00e9l\u00e9chargeur de m\u00e9dias et de d\u00e9finir l&rsquo;URL de l&rsquo;image t\u00e9l\u00e9charg\u00e9e dans le champ de texte. Donc, au d\u00e9but, vous devez cr\u00e9er un fichier js et le <a href=\"https:\/\/themewp.inform.click\/fr\/methode-standard-pour-inclure-javascript-et-css-dans-wordpress\/\" title=\"mettre\">mettre<\/a> en file d&rsquo; <a href=\"https:\/\/themewp.inform.click\/fr\/methode-standard-pour-inclure-javascript-et-css-dans-wordpress\/\" title=\"attente\">attente<\/a> dans un environnement WordPress.<\/p>\n<p>Cr\u00e9ons un fichier js <code>awscript.js<\/code>et mettons-le en file d&rsquo; attente comme suit\u00a0:<\/p>\n<pre><code>function aw_include_script() {\n\u00a0\n\u00a0\u00a0\u00a0\u00a0if (! did_action( 'wp_enqueue_media')) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0wp_enqueue_media();\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0wp_enqueue_script( 'awscript', get_stylesheet_directory_uri(). '\/js\/awscript.js', array('jquery'), null, false );\n}\nadd_action( 'admin_enqueue_scripts', 'aw_include_script' );<\/code><\/pre>\n<p>Ici, j&rsquo;ai donn\u00e9 le chemin du th\u00e8me en supposant que vous ajoutez un code entier dans le th\u00e8me. Si vous le faites via le plugin, vous devez ajuster le chemin selon votre plugin.<\/p>\n<p>Pour effectuer cette t\u00e2che, j&rsquo;ai pris une r\u00e9f\u00e9rence de <a href=\"https:\/\/codex.wordpress.org\/Javascript_Reference\/wp.media\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Javascript Reference\/wp.media<\/a> et \u00e9crit le code jQuery. Dans le, <code>awscript.js<\/code>nous \u00e9crirons un code de t\u00e9l\u00e9chargement de m\u00e9dia comme suit.<\/p>\n<pre><code>jQuery(function($){\n\u00a0\u00a0\u00a0\u00a0$('body').on('click', '.aw_upload_image_button', function(e){\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0e.preventDefault();\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var button = $(this),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0aw_uploader = wp.media({\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0title: 'Custom image',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0library: {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0uploadedTo: wp.media.view.settings.post.id,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0type: 'image'\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0},\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0button: {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0text: 'Use this image'\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0},\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0multiple: false\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}).on('select', function() {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var attachment = aw_uploader.state().get('selection').first().toJSON();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$('#aw_custom_image').val(attachment.url);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0})\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.open();\n\u00a0\u00a0\u00a0\u00a0});\n});<\/code><\/pre>\n<p>Maintenant, allez-y et cliquez sur le bouton &quot;T\u00e9l\u00e9charger l&rsquo;image&quot;, cela ouvrira le t\u00e9l\u00e9chargeur de m\u00e9dias, choisissez\/t\u00e9l\u00e9chargez l&rsquo;image et vous devriez voir l&rsquo;URL de l&rsquo;image ajout\u00e9e dans le champ de texte. Enfin, je vais enregistrer cette URL dans la table &lsquo;postmeta&rsquo; avec la cl\u00e9 &lsquo;aw_custom_image&rsquo;. Bien s\u00fbr, vous pouvez donner n&rsquo;importe quel nom \u00e0 la cl\u00e9.<\/p>\n<pre><code>function aw_save_postdata($post_id)\n{\n\u00a0\u00a0\u00a0\u00a0if (array_key_exists('aw_custom_image', $_POST)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0update_post_meta(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$post_id,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'aw_custom_image',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$_POST['aw_custom_image']\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0);\n\u00a0\u00a0\u00a0\u00a0}\n}\nadd_action('save_post', 'aw_save_postdata');<\/code><\/pre>\n<p>Le save_post est une action d\u00e9clench\u00e9e chaque fois qu&rsquo;un article ou une page est cr\u00e9\u00e9 ou mis \u00e0 jour. En utilisant cette action, vous pouvez injecter votre code dans le syst\u00e8me. Vous pouvez en savoir plus sur ce crochet sur la documentation <a href=\"https:\/\/developer.wordpress.org\/reference\/hooks\/save_post\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPress<\/a>.<\/p>\n<p>J&rsquo;esp\u00e8re que vous avez appris \u00e0 ajouter un t\u00e9l\u00e9chargeur de m\u00e9dias personnalis\u00e9 dans WordPress. Essayez-le dans votre plugin ou votre th\u00e8me et faites-moi part de vos commentaires dans la section commentaire ci-dessous.<\/p>\n<h4>Articles Li\u00e9s<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/integration-de-mailchimp-avec-le-plugin-contact-form-7\/\" title=\"Int\u00e9gration de MailChimp avec le plugin Contact Form 7\">Int\u00e9gration de MailChimp avec le plugin Contact Form 7<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/comment-ajouter-du-code-apres-la-balise-body-dans-wordpress\/\" title=\"Comment ajouter du code apr\u00e8s la balise Body dans WordPress\">Comment ajouter du code apr\u00e8s la balise Body dans WordPress<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voulez-vous ajouter un t\u00e9l\u00e9chargeur de m\u00e9dias dans votre plugin ou votre th\u00e8me. Dans cet article, je montre comment int\u00e9grer facilement WordPress media uploader dans son plugin<\/p>\n","protected":false},"author":1,"featured_media":21632,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[412,497,608],"tags":[844],"class_list":["post-24825","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-divers","category-laravel2-4","category-uncategorized-4","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/24825","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/comments?post=24825"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/24825\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media\/21632"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media?parent=24825"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/categories?post=24825"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/tags?post=24825"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}