{"id":231471,"date":"2022-12-21T13:00:00","date_gmt":"2022-12-21T10:00:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231471"},"modified":"2022-12-07T10:28:40","modified_gmt":"2022-12-07T07:28:40","slug":"adicionando-links-de-plugins-personalizados-do-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/adicionando-links-de-plugins-personalizados-do-wordpress\/","title":{"rendered":"Adicionando links de plugins personalizados do WordPress"},"content":{"rendered":"\n<p>Se voc\u00ea j\u00e1 criou um plug-in personalizado para voc\u00ea ou para outra pessoa, provavelmente j\u00e1 fez algo com os links do plug-in do WordPress, mesmo que seja apenas fornecer informa\u00e7\u00f5es do autor um URL para a p\u00e1gina inicial do plug-in.<\/p>\n<p>E voc\u00ea sabe do que estou falando: Esses s\u00e3o os links que aparecem abaixo do nome do plugin.<\/p>\n<p>De acordo com <a href=\"https:\/\/developer.wordpress.org\/reference\/hooks\/plugin_row_meta\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">a refer\u00eancia do c\u00f3digo<\/a>, esta informa\u00e7\u00e3o \u00e9:<\/p>\n<blockquote>\n<p>Os metadados do plug-in, incluindo a vers\u00e3o, o autor, o URI do autor e o URI do plug-in.<\/p>\n<\/blockquote>\n<p>Ocasionalmente, por\u00e9m, voc\u00ea pode achar que deseja adicionar ou modificar os links. Ou seja, voc\u00ea pode adicionar seus pr\u00f3prios links personalizados para aparecer na lista abaixo.<\/p>\n<h2>Links de plugins do WordPress<\/h2>\n<p>No n\u00facleo, os links do plug-in do WordPress s\u00e3o chamados de meta-linha do plug-in (ou talvez a linha de metadados do plug-in seja mais apropriada).<\/p>\n<p>Independentemente disso, \u00e9 uma s\u00e9rie de informa\u00e7\u00f5es que s\u00e3o reunidas e renderizadas no front-end sempre que o WordPress deseja mostrar algo. Voc\u00ea pode adicionar informa\u00e7\u00f5es personalizadas rapidamente fazendo algo <a href=\"https:\/\/gist.github.com\/tommcfarlin\/14b73af1670ed6500ab82c0fecb1a3a7#file-00-plugin-links-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">assim<\/a> :<\/p>\n<pre><code>&lt;?php\n\nadd_action('plugin_row_meta', __NAMESPACE__. 'addCustomPluginLinks');\n\/**\n * @param array $metaData the array of metadata that appears in the row of plugin information\n *\n * @return array $metaData the modified array that includes the custom anchor\n *\/\nfunction addCustomPluginLinks(array $metaData): array\n{\n  $metaData[] = '&lt;a href=\"https:\/\/google.com\"&gt;Example Link&lt;\/a&gt;';\n  return $metaData;\n}\n<\/code><\/pre>\n<p>Mas isso deixa algumas coisas a desejar. Nomeadamente:<\/p>\n<ul>\n<li>n\u00e3o h\u00e1 seguran\u00e7a em torno da marca\u00e7\u00e3o (e talvez voc\u00ea possa argumentar que n\u00e3o precisa haver se voc\u00ea for o respons\u00e1vel por isso),<\/li>\n<li>n\u00e3o h\u00e1 acessibilidade ao redor da \u00e2ncora,<\/li>\n<\/ul>\n<p>Para mitigar isso, o c\u00f3digo pode ser atualizado <a href=\"https:\/\/gist.github.com\/tommcfarlin\/14b73af1670ed6500ab82c0fecb1a3a7#file-01-plugin-links-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">para isso<\/a> :<\/p>\n<pre><code>&lt;?php\n\nadd_action('plugin_row_meta', __NAMESPACE__. 'addCustomPluginLinks');\n\/**\n * @param array $metaData the array of metadata that appears in the row of plugin information\n *\n * @return array $metaData the modified array that includes the custom anchor\n *\/\nfunction addCustomPluginLinks(array $metaData): array\n{\n  \/\/ Safely build the markup for the new anchor.\n  $html = wp_kses(\n      '&lt;a href=\"https:\/\/google.com\" target=\"_blank\" data-title=\"Example Link\" aria-label=\"Example Link\"&gt;Example Link&lt;\/a&gt;',\n      [\n          'a' =&gt; [\n              'href' =&gt; [],\n              'target' =&gt; [],\n              'aria-label' =&gt; [],\n              'data-title' =&gt; [],\n          ],\n      ]\n  );\n\n  \/\/ Insert the markup at the end of the array.\n  $metaData[] = $html;  \n\n  return $metaData;\n}\n<\/code><\/pre>\n<p>E se voc\u00ea realmente quiser ser criativo, voc\u00ea pode usar o m\u00e9todo <a href=\"https:\/\/php.net\/manual\/en\/function.array-splice.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">array_splice<\/a> do PHP para colocar o HTML onde quiser. Al\u00e9m disso, voc\u00ea pode querer adicionar uma cl\u00e1usula de guarda para um plugin espec\u00edfico usando algo como:<\/p>\n<pre><code>basename(plugin_dir_path(dirname(__FILE__, 2)));<\/code><\/pre>\n<p>E verificando o valor do resultado. Simplesmente retorne o array de entrada se n\u00e3o for igual ao nome do seu plugin.<\/p>\n<p>Isso est\u00e1 fora do escopo do que pretendemos fazer, no entanto. O acima deve ser suficiente para voc\u00ea come\u00e7ar.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voc\u00ea pode achar que deseja adicionar ou modificar os links do plugin WordPress. Ou seja, voc\u00ea pode querer adicionar seus links personalizados para aparecer na lista.<\/p>\n","protected":false},"author":1,"featured_media":235661,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[722,846,867],"tags":[1170],"class_list":["post-231471","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desenvolvedor","category-tutoriais","category-wordpress-8","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/231471","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/comments?post=231471"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/231471\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/235661"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=231471"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=231471"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=231471"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}