{"id":231152,"date":"2022-12-23T19:52:00","date_gmt":"2022-12-23T16:52:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231152"},"modified":"2022-12-07T10:54:54","modified_gmt":"2022-12-07T07:54:54","slug":"patrones-de-diseno-para-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/es\/patrones-de-diseno-para-wordpress\/","title":{"rendered":"Patrones de dise\u00f1o para WordPress"},"content":{"rendered":"\n<p>Cuanto m\u00e1s tiempo trabaje con una plataforma determinada, m\u00e1s comenzar\u00e1 a reconocer ciertas formas de hacer algo. Y es muy probable que empiece a reconocer dos cosas que se pueden hacer:<\/p>\n<ul>\n<li>de una manera que es r\u00e1pido de desarrollar, pero m\u00e1s dif\u00edcil de mantener o<\/li>\n<li>de una manera que es m\u00e1s lenta de desarrollar, pero m\u00e1s f\u00e1cil de mantener.<\/li>\n<\/ul>\n<p>Por supuesto, como cualquier proyecto, los requisitos, las restricciones, los presupuestos y el tiempo van a afectar lo que puede implementar. Pero lo que quiero decir es que, independientemente de c\u00f3mo implementes una soluci\u00f3n, comienzas a familiarizarte con la forma de resolver un problema determinado.<\/p>\n<p>Si un problema debe resolverse r\u00e1pidamente, entonces conoce las compensaciones, pero probablemente sepa c\u00f3mo hacerlo r\u00e1pidamente. De manera similar, si tiene un poco m\u00e1s de tiempo (y presupuesto), puede desarrollarlo de otra manera, y sabr\u00e1 c\u00f3mo hacerlo y posiblemente incluso envolverlo con suites de prueba si las limitaciones lo permiten.<\/p>\n<p>Independientemente de c\u00f3mo tenga que implementar una soluci\u00f3n, conoce las formas en que puede hacerlo.<\/p>\n<p>Y esto plantea una pregunta:<\/p>\n<p>\u00bfHay patrones de dise\u00f1o espec\u00edficos para una plataforma dada? Y si es as\u00ed, \u00bfcu\u00e1les son algunos de los patrones de dise\u00f1o que pueden estar disponibles en WordPress?<\/p>\n<h2>Patrones de dise\u00f1o para WordPress<\/h2>\n<p>Por supuesto, no estoy hablando de los patrones de dise\u00f1o que desarroll\u00f3 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Design_Patterns_(book)\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Gang of Four<\/a> hace tantas d\u00e9cadas. En cambio, estoy hablando de formas de hacer ciertas cosas en WordPress.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160471-61e70b0325077.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160471-61e70b0325077.png\" alt=\"Patrones de dise\u00f1o para WordPress\" ><\/a><\/p>\n<p>Por ejemplo:<\/p>\n<ul>\n<li>desinfectar adecuadamente la informaci\u00f3n antes de escribirla en la base de datos (para publicaciones, taxonom\u00edas, metadatos, etc.),<\/li>\n<li>leer datos de la base de datos utilizando la utilidad de base de datos de WordPress (o <a href=\"https:\/\/codex.wordpress.org\/Class_Reference\/wpdb\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">$wpdb<\/a> ),<\/li>\n<li>validar y devolver informaci\u00f3n de la base de datos cuando se solicite,<\/li>\n<li>verificar la seguridad de una solicitud Ajax antes de realizar cualquier trabajo,<\/li>\n<li>configurar correctamente una consulta personalizada y luego restablecerla para que no interfiera con el ciclo principal,<\/li>\n<li>agregar activos espec\u00edficos de la p\u00e1gina tanto en el \u00e1rea administrativa de WordPress como en el sitio p\u00fablico de WordPress,<\/li>\n<li>y as\u00ed.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160471-61e70b06ec937.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160471-61e70b06ec937.png\" alt=\"Patrones de dise\u00f1o para WordPress\" ><\/a><\/p>\n<p>Hay un mont\u00f3n de cosas que podr\u00edamos enumerar aqu\u00ed. Pero creo que vale la pena explorar c\u00f3mo se ver\u00edan algunos de estos.<\/p>\n<p>Primero, sin embargo, \u00bfqu\u00e9 son <a href=\"https:\/\/en.wikipedia.org\/wiki\/Design_Patterns\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">los patrones de dise\u00f1o<\/a> en el sentido cl\u00e1sico?<\/p>\n<blockquote>\n<p>Un patr\u00f3n de dise\u00f1o es la forma reutilizable de una soluci\u00f3n a un problema de dise\u00f1o. La idea fue presentada por el arquitecto Christopher Alexander y se ha adaptado a varias otras disciplinas, sobre todo a la inform\u00e1tica.<\/p>\n<\/blockquote>\n<p>Trabaj\u00e9 en WordPress el tiempo suficiente y constru\u00ed suficientes complementos y herramientas usando la aplicaci\u00f3n para reconocer c\u00f3mo hacer ciertas cosas en lugar de encontrar algo original para cada proyecto.<\/p>\n<p>Entonces, \u00bfes seguro decir que hay cosas reutilizables que podemos emplear en WordPress para problemas comunes? Por supuesto. Habr\u00eda que generalizarlos, por supuesto.<\/p>\n<p>As\u00ed que voy a tomar un punto medio en esto al menos por el bien de los blogs. Voy a comenzar una serie que hablar\u00e1 sobre los temas anteriores junto con ejemplos de c\u00f3digo.<\/p>\n<p>Ser\u00e1n art\u00edculos breves, y har\u00e9 lo que pueda para asegurarme de que sea f\u00e1cil de seguir (con comentarios y explicaciones del c\u00f3digo) y, qui\u00e9n sabe, tal vez esto se convierta en algo m\u00e1s.<\/p>\n<h2>No estoy hablando de bibliotecas<\/h2>\n<p>Esto no debe confundirse con <a href=\"https:\/\/en.wikipedia.org\/wiki\/Library_(computing)\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">las bibliotecas<\/a>. Recuerde, las bibliotecas son como peque\u00f1as piezas de software que podemos ejecutar de forma independiente, o pueden ser un conjunto de herramientas o funciones que se pueden importar a su proyecto para agregar funciones.<\/p>\n<blockquote>\n<p>En inform\u00e1tica, una biblioteca es una colecci\u00f3n de recursos no vol\u00e1tiles utilizados por programas inform\u00e1ticos, a menudo para el desarrollo de software. Estos pueden incluir datos de configuraci\u00f3n, documentaci\u00f3n, datos de ayuda, plantillas de mensajes, c\u00f3digo escrito previamente y subrutinas, clases, valores o especificaciones de tipo.<\/p>\n<\/blockquote>\n<p>Tal vez ciertos patrones espec\u00edficos de WordPress podr\u00edan integrarse en sus bibliotecas, pero ese no es el objetivo de la publicaci\u00f3n.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160471-61e70b0a9a64d.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160471-61e70b0a9a64d.png\" alt=\"Patrones de dise\u00f1o para WordPress\" ><\/a><\/p>\n<p>En cambio, simplemente estoy tratando de dise\u00f1ar patrones comunes potenciales que existen en WordPress.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tal vez haya ciertos patrones de dise\u00f1o para WordPress. En esta publicaci\u00f3n y en una pr\u00f3xima serie, tal vez valga la pena explorarlos.<\/p>\n","protected":false},"author":1,"featured_media":236332,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[892,716,840,861],"tags":[1172],"class_list":["post-231152","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo","category-desarrollador","category-tutoriales","category-wordpress-2","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/231152","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/comments?post=231152"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/231152\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media\/236332"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media?parent=231152"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/categories?post=231152"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/tags?post=231152"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}