{"id":25090,"date":"2021-05-25T18:20:00","date_gmt":"2021-05-25T15:20:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25090"},"modified":"2021-10-18T03:10:25","modified_gmt":"2021-10-18T00:10:25","slug":"aggiunta-di-pulsanti-immagine-personalizzati-con-media-uploader-in-wordpress","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/it\/aggiunta-di-pulsanti-immagine-personalizzati-con-media-uploader-in-wordpress\/","title":{"rendered":"Aggiunta di pulsanti immagine personalizzati con Media Uploader in WordPress"},"content":{"rendered":"<p>Di recente stavo lavorando a un plug-in in cui volevamo utilizzare l&#8217;uploader multimediale predefinito di WordPress per le nostre esigenze. Avevamo un pulsante immagine personalizzato e volevamo caricare un&#8217;immagine tramite l&#8217;uploader multimediale. WordPress ha creato un meraviglioso caricatore multimediale che consente a un utente di caricare una nuova immagine o utilizzare un&#8217;immagine esistente dalla libreria multimediale.<\/p>\n<p>\u00c8 sempre consigliabile utilizzare l&#8217;uploader multimediale integrato se stai cercando una soluzione personalizzata per caricare un&#8217;immagine nel back-end. In questo modo stai seguendo gli standard di WordPress. L&#8217;implementazione di un uploader multimediale richiede solo poche righe di codice. Quindi, senza ulteriori discussioni, iniziamo con esso.<\/p>\n<p>Per questo tutorial, aggiunger\u00f2 un pulsante immagine personalizzato per il post e la pagina. Facendo clic su questo pulsante, si aprir\u00e0 l&#8217;uploader multimediale in cui l&#8217;utente pu\u00f2 caricare l&#8217;immagine. L&#8217;URL dell&#8217;immagine caricata viene impostato in un campo meta personalizzato e verr\u00e0 salvato come meta post per il post o la pagina specifica.<\/p>\n<h3>Aggiungi meta box personalizzati in WordPress<\/h3>\n<p>Il meta box non \u00e8 altro che un blocco sul post o sulla pagina. Categorie, Tag, Immagine in evidenza, Estratto, Discussione, ecc. sono l&#8217;esempio di meta box. Utilizzando la casella Meta puoi aggiungere ulteriori informazioni per il post e la pagina.<\/p>\n<p>Abbiamo bisogno di una meta box che contenga il pulsante di caricamento dell&#8217;immagine e un campo di testo. Quando un utente fa clic sul pulsante, caricher\u00e0 l&#8217;immagine e l&#8217;URL dell&#8217;immagine finale verr\u00e0 impostato nel campo di testo.<\/p>\n<p>L&#8217;aggiunta di <a href=\"https:\/\/developer.wordpress.org\/plugins\/metadata\/custom-meta-boxes\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">meta box<\/a> \u00e8 facile e diretta. Scrivi il codice sottostante nel <code>functions.php<\/code>file o nel tuo 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>Dopo aver aggiunto il codice sopra, vai al tuo post o pagina e dovresti essere in grado di vedere la nuova meta box aggiunta insieme ai loro campi.<\/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=\"Aggiunta di pulsanti immagine personalizzati con Media Uploader in WordPress\" ><\/a><\/p>\n<h3>Personalizza l&#8217;uploader multimediale di WordPress<\/h3>\n<p>Ora sei pronto con la tua meta box. La prossima cosa \u00e8 fare clic sul pulsante &quot;Carica immagine&quot;, aprire l&#8217;uploader multimediale e impostare l&#8217;URL dell&#8217;immagine caricata nel campo di testo. Quindi all&#8217;inizio devi creare un file js e <a href=\"https:\/\/themewp.inform.click\/it\/modo-standard-per-includere-javascript-e-css-in-wordpress\/\" title=\"accodarlo\">accodarlo<\/a> in un ambiente WordPress.<\/p>\n<p>Creiamo un file js <code>awscript.js<\/code>e accodiamolo come segue:<\/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>Qui, ho fornito il percorso del tema supponendo che tu stia aggiungendo un intero codice nel tema. Se lo stai facendo tramite il plug-in, devi regolare il percorso secondo il tuo plug-in.<\/p>\n<p>Per eseguire questo compito ho preso un riferimento a <a href=\"https:\/\/codex.wordpress.org\/Javascript_Reference\/wp.media\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Javascript Reference\/wp.media<\/a> e <a href=\"https:\/\/codex.wordpress.org\/Javascript_Reference\/wp.media\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ho<\/a> scritto il codice jQuery. Nel <code>awscript.js<\/code>scriveremo un codice per l&#8217;uploader dei media come segue.<\/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>Ora vai avanti e fai clic sul pulsante &quot;Carica immagine&quot;, si aprir\u00e0 l&#8217;uploader multimediale, scegli\/carica l&#8217;immagine e dovresti vedere l&#8217;URL dell&#8217;immagine aggiunto nel campo di testo. Infine, salver\u00f2 questo URL nella tabella &quot;postmeta&quot; con la chiave &quot;aw_custom_image&quot;. Naturalmente, puoi dare qualsiasi nome alla chiave.<\/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>Il save_post \u00e8 un&#8217;azione attivata ogni volta che un post o una pagina viene creato o aggiornato. Usando questa azione puoi iniettare il tuo codice nel sistema. Puoi leggere di pi\u00f9 su questo hook sulla documentazione di <a href=\"https:\/\/developer.wordpress.org\/reference\/hooks\/save_post\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPress<\/a>.<\/p>\n<p>Spero che tu sappia come aggiungere un caricatore multimediale personalizzato in WordPress. Provalo nel tuo plugin o tema e fammi sapere i tuoi pensieri nella sezione commenti qui sotto.<\/p>\n<h4>articoli Correlati<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/integrazione-di-mailchimp-con-il-plug-in-contact-form-7\/\" title=\"Integrazione di MailChimp con il plug-in Contact Form 7\">Integrazione di MailChimp con il plug-in Contact Form 7<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/come-aggiungere-il-codice-dopo-il-tag-del-corpo-in-wordpress\/\" title=\"Come aggiungere il codice dopo il tag del corpo in WordPress\">Come aggiungere il codice dopo il tag del corpo in WordPress<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vuoi aggiungere l&#8217;uploader multimediale nel tuo plugin o tema. In questo articolo, mostro come si pu\u00f2 facilmente integrare l&#8217;uploader multimediale di WordPress nel proprio 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":[500,415,611],"tags":[846],"class_list":["post-25090","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","category-varie","category-uncategorized-7","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/25090","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/comments?post=25090"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/25090\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media\/21632"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media?parent=25090"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/categories?post=25090"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/tags?post=25090"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}