{"id":229362,"date":"2022-10-31T10:05:00","date_gmt":"2022-10-31T07:05:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229362"},"modified":"2022-11-09T06:40:54","modified_gmt":"2022-11-09T03:40:54","slug":"escrevendo-plugins-do-wordpress-para-recursos-existentes","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/escrevendo-plugins-do-wordpress-para-recursos-existentes\/","title":{"rendered":"Escrevendo plugins do WordPress para recursos existentes"},"content":{"rendered":"\n<p>Em um post anterior, falei sobre a filosofia de design do WordPress de <a href=\"https:\/\/tommcfarlin.com\/wordpress-philosophy-decisions-not-options\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">decis\u00f5es, n\u00e3o de op\u00e7\u00f5es<\/a>. E estou trabalhando para chegar a um ponto, mas primeiro tenho que estabelecer um pouco as bases sobre a coisa toda.<\/p>\n<p>Voc\u00ea pode ler todo o conjunto de filosofias <a href=\"https:\/\/wordpress.org\/about\/philosophy\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">nesta p\u00e1gina<\/a>, mas aqui est\u00e1 a ess\u00eancia da que acabei de mencionar:<\/p>\n<blockquote>\n<p>Ao tomar decis\u00f5es, esses s\u00e3o os usu\u00e1rios que consideramos primeiro. Um \u00f3timo exemplo dessa considera\u00e7\u00e3o s\u00e3o as op\u00e7\u00f5es de software. Toda vez que voc\u00ea d\u00e1 uma op\u00e7\u00e3o a um usu\u00e1rio, voc\u00ea est\u00e1 pedindo que ele tome uma decis\u00e3o. Quando um usu\u00e1rio n\u00e3o se importa ou n\u00e3o entende a op\u00e7\u00e3o, isso acaba levando \u00e0 frustra\u00e7\u00e3o.<\/p>\n<p>Como desenvolvedores, \u00e0s vezes sentimos que fornecer op\u00e7\u00f5es para tudo \u00e9 uma coisa boa, voc\u00ea nunca pode ter muitas op\u00e7\u00f5es, certo? Em \u00faltima an\u00e1lise, essas escolhas acabam sendo t\u00e9cnicas, escolhas nas quais o usu\u00e1rio final m\u00e9dio n\u00e3o tem interesse.<\/p>\n<p>\u00c9 nosso dever como desenvolvedores tomar decis\u00f5es de design inteligentes e evitar colocar o peso das escolhas t\u00e9cnicas em nossos usu\u00e1rios finais.<\/p>\n<\/blockquote>\n<p>Esta \u00e9 sem d\u00favida a minha filosofia favorita que define o que deve entrar no n\u00facleo do WordPress e como; embora eu fosse negligente se n\u00e3o dissesse que acho que h\u00e1 \u00e1reas para melhorias.<\/p>\n<p>(Eu sei que \u00e9 aqui que a discuss\u00e3o pode dar uma guinada no campo esquerdo, mas eu n\u00e3o sei fazer isso, nem estou tentando come\u00e7ar como <a href=\"http:\/\/www.dictionary.com\/browse\/armchair-quarterback\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">quarterback de poltrona<\/a> .)<\/p>\n<p>Mas eis a pergunta:<\/p>\n<p>Se houver uma \u00e1rea da interface do usu\u00e1rio do WordPress que possa ser aprimorada por um plugin que fa\u00e7a o mesmo conjunto de funcionalidades que j\u00e1 existe no plugin, vale a pena criar o plugin caso o recurso j\u00e1 exista?<\/p>\n<p>Faz sentido criar plugins do WordPress para recursos existentes se o plug-in aderir \u00e0 filosofia &#8220;designs, n\u00e3o op\u00e7\u00f5es&quot; mais do que o recurso principal?<\/p>\n<p>Primeiro, reconhe\u00e7o a falta de l\u00f3gica inclu\u00edda nesta declara\u00e7\u00e3o. Quer dizer, o que eu tenho \u00e9:<\/p>\n<ol>\n<li>Precisamos tomar mais decis\u00f5es em nome do usu\u00e1rio e oferecer menos op\u00e7\u00f5es.<\/li>\n<li>J\u00e1 existe uma op\u00e7\u00e3o no core.<\/li>\n<li>Criar um plugin para introduzir uma funcionalidade que j\u00e1 existe, duplicando-a, mas agilizando-a para que tome uma decis\u00e3o pelo usu\u00e1rio em seu nome.<\/li>\n<\/ol>\n<p>Ent\u00e3o, talvez a discuss\u00e3o pare com o terceiro ponto acima. Mas, por uma quest\u00e3o de discuss\u00e3o (para argumento, se esse for o seu gosto), quero pegar um exemplo apenas para este post.<\/p>\n<h3>Uma olhada nas configura\u00e7\u00f5es de discuss\u00e3o<\/h3>\n<p>As configura\u00e7\u00f5es de discuss\u00e3o que existem no\u00a0 menu <strong>Configura\u00e7\u00f5es<\/strong> do WordPress podem ser um pouco esmagadoras, mesmo para, o que acredito, seja o blogueiro de n\u00edvel intermedi\u00e1rio e muito menos o tipo iniciante ou desenvolvedor.<\/p>\n<p>A tela de configura\u00e7\u00f5es de discuss\u00e3o.<\/p>\n<p>Leva um pouco de tempo n\u00e3o apenas para ler as op\u00e7\u00f5es que existem, mas para entend\u00ea-las. E ent\u00e3o, existem op\u00e7\u00f5es mais avan\u00e7adas, como a <strong>Lista negra de coment\u00e1rios<\/strong>, que eu acho que provavelmente poderia fazer parte de uma guia <strong>Avan\u00e7ado .<\/strong><\/p>\n<p>Mas eu discordo.<\/p>\n<p>H\u00e1 uma op\u00e7\u00e3o presente em <strong>Outras configura\u00e7\u00f5es de coment\u00e1rios<\/strong> que afirma:<\/p>\n<p>&#8220;Fechar coment\u00e1rios automaticamente em artigos com mais de [x] dias.&#8221;<\/p>\n<p>Esse recurso, por si s\u00f3, n\u00e3o \u00e9 ruim, mas e se eu quiser fechar coment\u00e1rios em artigos com mais de [x] dias apenas se eles tiverem 0 coment\u00e1rios. Agora, essa condicional \u2013 ou seja, &#8220;se eles tiverem 0 coment\u00e1rios&#8221; \u2013 acho que \u00e9 um exemplo do que um plugin pode manipular.<\/p>\n<p>Mas a op\u00e7\u00e3o que \u00e9 apresentada como \u00e9. Aquilo \u00e9:<\/p>\n<p>&#8220;Fechar coment\u00e1rios automaticamente em artigos com mais de [x] dias.&#8221;<\/p>\n<p>Eu vejo a raz\u00e3o pela qual esta \u00e9 uma op\u00e7\u00e3o. Ningu\u00e9m deve tomar uma decis\u00e3o em nome de um usu\u00e1rio sobre como seus coment\u00e1rios devem ser tratados.<\/p>\n<ul>\n<li>A forma como \u00e9 apresentada, por\u00e9m, \u00e9 t\u00e3o clara quanto poderia ser?<\/li>\n<li>A tela por si s\u00f3 \u00e9 prop\u00edcia para que os usu\u00e1rios leiam, respondam e ajustem e sejam necess\u00e1rios? Ou est\u00e1 t\u00e3o sobrecarregado de op\u00e7\u00f5es que eles simplesmente se esquivam?<\/li>\n<li>Esse recurso espec\u00edfico pode ser relegado a um plug-in (ou parte de um conjunto de plug-ins) diretamente relacionado ao gerenciamento de coment\u00e1rios para permitir que os usu\u00e1rios controlem seus coment\u00e1rios por meio de plug-ins?<\/li>\n<\/ul>\n<p>Afinal, os plugins s\u00e3o principalmente para funcionalidade, e a modera\u00e7\u00e3o de coment\u00e1rios tem mais a ver com funcionalidade do que com apresenta\u00e7\u00e3o.<\/p>\n<p>Faz sentido, ent\u00e3o, criar um plugin do WordPress para recursos existentes como este com a ideia de que \u00e9 uma instala\u00e7\u00e3o simples, ativa\u00e7\u00e3o e partida, para usu\u00e1rios sem que eles digitalizem uma lista inteira de op\u00e7\u00f5es e entendam o que \u00e9 apresentado a eles? eles?<\/p>\n<p>Pessoalmente, estou em cima do muro, mas estou genuinamente interessado em pelo menos experimentar para ver como ele pode funcionar. Claro, isso significa que eu deveria apenas colocar meu c\u00f3digo onde meus pensamentos est\u00e3o \u2013 e talvez eu coloque \ud83d\ude0e \u2013 mas isso n\u00e3o muda o fato de que estou curioso nas ideias para os outros.<\/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>Faz sentido criar plugins do WordPress para recursos existentes se ele aderir \u00e0 filosofia \u201cdesigns, not options\u201d mais do que ao n\u00facleo?<\/p>\n","protected":false},"author":1,"featured_media":221177,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[722,920,816,867],"tags":[1170],"class_list":["post-229362","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desenvolvedor","category-outro","category-plug-ins","category-wordpress-8","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/229362","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=229362"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/229362\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/221177"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=229362"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=229362"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=229362"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}