{"id":230117,"date":"2022-11-12T18:49:00","date_gmt":"2022-11-12T15:49:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230117"},"modified":"2022-11-09T20:10:13","modified_gmt":"2022-11-09T17:10:13","slug":"aggiunta-di-attributi-immagine-wordpress-personalizzati","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/aggiunta-di-attributi-immagine-wordpress-personalizzati\/","title":{"rendered":"Aggiunta di attributi immagine WordPress personalizzati"},"content":{"rendered":"<p>Quando si tratta di lavorare con <strong>the_content<\/strong>, \u00e8 semplice.<\/p>\n<ol>\n<li>Imposta un filtro che sia collegato a <strong>the_content,<\/strong><\/li>\n<li>definire una funzione che accetti il \u200b\u200bcontenuto dei post in arrivo,<\/li>\n<li>apporta le tue modifiche,<\/li>\n<li>restituire il contenuto modificato.<\/li>\n<\/ol>\n<p>E la maggior parte delle volte, questo \u00e8 tutto ci\u00f2 che serve. Ma ci sono momenti in cui potresti voler fare cose pi\u00f9 avanzate.<\/p>\n<p>Ad esempio, potresti voler includere il contenuto da un <a href=\"https:\/\/tommcfarlin.com\/buffering-wordpress-content\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">modello esterno<\/a>. O forse vorrai aggiungere attributi alle immagini che trovi nel post.<\/p>\n<p>Pu\u00f2 essere difficile farlo usando un&#8217;espressione regolare (perch\u00e9 HTML \u00e8 un linguaggio non regolare) ma con l&#8217;aiuto di <a href=\"https:\/\/php.net\/manual\/en\/class.domdocument.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">DOMDocument<\/a> di PHP, non \u00e8 poi cos\u00ec male.<\/p>\n<p>L&#8217;idea alla base di quel codice che sto per mostrare \u00e8 la seguente:<\/p>\n<ol>\n<li>cerca i\u00a0 tag <strong>img<\/strong> nel post,<\/li>\n<li>scorrere tutto ci\u00f2 che viene trovato,<\/li>\n<li>aggiungi gli attributi,<\/li>\n<li>salva l&#8217;HTML,<\/li>\n<li>restituire il risultato.<\/li>\n<\/ol>\n<p>Tieni presente che potrebbe essere necessario modificarlo in base alle tue esigenze, ma il codice di base <a href=\"https:\/\/gist.github.com\/tommcfarlin\/52ba9093940abf03519d77cd17dfa257\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">di cui avrai bisogno \u00e8<\/a> :<\/p>\n<pre><code>&lt;?php\n\nprivate function addImageAttributes($content)\n{\n\n  $content  = mb_convert_encoding($content, 'HTML-ENTITIES', \"UTF-8\");\n  $document = new DOMDocument();\n\n  libxml_use_internal_errors(true);\n  $document-&gt;loadHTML(utf8_decode($content));\n\n  $images = $document-&gt;getElementsByTagName('img');\n  foreach ($images as $image) {\n      $image-&gt;setAttribute('data-example', 'true');\n  }\n\n  return $document-&gt;saveHTML();\n}<\/code><\/pre>\n<p>Per coloro che non hanno familiarit\u00e0 con DOMDocument e cosa sta succedendo nel codice sopra (come nel motivo per cui alcune funzioni vengono chiamate prima di elaborare il markup), ecco una rapida carrellata:<\/p>\n<ul>\n<li><strong>mb_convert_encode<\/strong> .Questo prender\u00e0 la codifica dei caratteri dei dati in entrata e la convertir\u00e0 in UTF-8 (basato sul codice sopra, ma pu\u00f2 essere qualcosa di diverso).<\/li>\n<li><strong>libxml_use_internal_errors<\/strong>. Questo disattiver\u00e0 qualsiasi segnalazione di errore e tutti noi, come programmatori, recupereremo gli errori da soli.<\/li>\n<li><strong>utf8_decodifica.\u00a0<\/strong>Questo decodifica le informazioni in una stringa da UTF-8 a ISO-8859-1. Il motivo per cui lo facciamo \u00e8 che la maggior parte delle pagine avr\u00e0 un set di caratteri definito come quest&#8217;ultimo e abbiamo bisogno che sia codificato nel primo per elaborarlo.<\/li>\n<\/ul>\n<p>Detto questo, consiglio anche di leggere DOMDocument per ulteriori informazioni su tutto ci\u00f2 che sta accadendo sopra.<\/p>\n<p>Tuttavia, una volta utilizzata la funzione come quella sopra, avrai un\u00a0 attributo <strong>di esempio di dati<\/strong> personalizzato con un valore <strong>true<\/strong> sulle immagini durante il tuo post.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ci sono momenti in cui potresti voler fare cose pi\u00f9 avanzate con i tuoi contenuti, come aggiungere attributi di immagine WordPress personalizzati con the_content.<\/p>\n","protected":false},"author":1,"featured_media":165834,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[896,844,865],"tags":[1168],"class_list":["post-230117","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codice","category-tutorial","category-wordpress-6","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/230117","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/comments?post=230117"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/230117\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/165834"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=230117"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=230117"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=230117"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}