{"id":229334,"date":"2022-11-12T18:29:00","date_gmt":"2022-11-12T15:29:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229334"},"modified":"2022-11-09T06:32:59","modified_gmt":"2022-11-09T03:32:59","slug":"kohandatud-wordpressi-pildiatribuutide-lisamine","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/kohandatud-wordpressi-pildiatribuutide-lisamine\/","title":{"rendered":"Kohandatud WordPressi pildiatribuutide lisamine"},"content":{"rendered":"<p>Mis puutub <strong>sisuga_content<\/strong> t\u00f6\u00f6tamisse, siis on see lihtne.<\/p>\n<ol>\n<li>Seadistage filter, mis on konksuga_content<strong>,<\/strong><\/li>\n<li>m\u00e4\u00e4rake funktsioon, mis aktsepteerib sissetuleva postituse sisu,<\/li>\n<li>tehke oma muudatused,<\/li>\n<li>tagastada muudetud sisu.<\/li>\n<\/ol>\n<p>Ja enamasti on see k\u00f5ik, mida vaja l\u00e4heb. Kuid on aegu, mil v\u00f5iksite teha keerukamaid asju.<\/p>\n<p>N\u00e4iteks soovite v\u00f5ib-olla kaasata sisu <a href=\"https:\/\/tommcfarlin.com\/buffering-wordpress-content\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">v\u00e4lisest mallist<\/a>. V\u00f5i soovite lisada postitusest leitud piltidele atribuute.<\/p>\n<p>Seda v\u00f5ib olla keeruline teha regulaaravaldise abil (kuna HTML on mitteregulaarne keel), kuid PHP <a href=\"https:\/\/php.net\/manual\/en\/class.domdocument.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">DOMDocumenti<\/a> abil pole see v\u00e4ga halb.<\/p>\n<p>Selle koodi idee, mida ma n\u00e4itan, on j\u00e4rgmine:<\/p>\n<ol>\n<li>otsi\u00a0 postitusest <strong>img<\/strong> -silte,<\/li>\n<li>silmus l\u00e4bi mida iganes leitakse,<\/li>\n<li>lisa atribuudid,<\/li>\n<li>salvesta HTML,<\/li>\n<li>tagastada tulemus.<\/li>\n<\/ol>\n<p>Pange t\u00e4hele, et peate v\u00f5ib-olla seda kohandama vastavalt oma vajadustele, kuid p\u00f5hikood <a href=\"https:\/\/gist.github.com\/tommcfarlin\/52ba9093940abf03519d77cd17dfa257\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">, mida vajate, on<\/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>Neile, kes ei tunne DOMDocumenti ega \u00fclalolevas koodis toimuvat (nt miks teatud funktsioone enne m\u00e4rgistuse t\u00f6\u00f6tlemist kutsutakse), on siin kiire \u00fclevaade:<\/p>\n<ul>\n<li><strong>mb_convert_encode<\/strong> .See v\u00f5tab sissetulevate andmete m\u00e4rgikodeeringu ja teisendab need UTF-8-ks (eespool toodud koodi alusel, kuid see v\u00f5ib olla midagi muud).<\/li>\n<li><strong>libxml_use_internal_errors<\/strong>. See l\u00fclitab v\u00e4lja igasuguse veateate ja me k\u00f5ik programmeerijana saame vead ise v\u00e4lja tuua.<\/li>\n<li><strong>utf8_decode.\u00a0<\/strong>See dekodeerib teabe stringina UTF-8-st ISO-8859-1-ni. P\u00f5hjus, miks me seda teeme, on see, et enamikul lehtedel on m\u00e4rgistik, mis on m\u00e4\u00e4ratletud viimasena ja me peame selle t\u00f6\u00f6tlemiseks kodeerima esimesena.<\/li>\n<\/ul>\n<p>Sellegipoolest soovitan lugeda ka DOMDocumenti, et saada lisateavet k\u00f5ige \u00fclaltoodud kohta.<\/p>\n<p>Sellegipoolest, kui kasutate \u00fclaltoodud funktsiooni, on teil kogu postituses piltidel kohandatud <strong>andmen\u00e4idise<\/strong> atribuut, mille v\u00e4\u00e4rtus on <strong>t\u00f5ene .<\/strong><\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>M\u00f5nikord soovite oma sisuga teha t\u00e4psemaid toiminguid, n\u00e4iteks lisada kohandatud WordPressi pildiatribuute koos atribuudiga_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":[894,842,863],"tags":[1165],"class_list":["post-229334","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kood","category-opetused","category-wordpress-4","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/229334","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/comments?post=229334"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/229334\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/165834"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=229334"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=229334"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=229334"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}