{"id":231126,"date":"2022-12-22T09:44:00","date_gmt":"2022-12-22T06:44:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231126"},"modified":"2022-12-07T10:31:29","modified_gmt":"2022-12-07T07:31:29","slug":"no-contamine-la-tabla-de-opciones-de-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/es\/no-contamine-la-tabla-de-opciones-de-wordpress\/","title":{"rendered":"No contamine la tabla de opciones de WordPress"},"content":{"rendered":"\n<p>Soy fan\u00e1tico de los ciclos cortos de liberaci\u00f3n. Dependiendo del proyecto, la duraci\u00f3n del ciclo variar\u00e1, pero para muchos de los tipos de proyectos en los que trabajo, pretendo tener ciclos de publicaci\u00f3n de dos semanas.<\/p>\n<p>Adem\u00e1s, hay ocasiones en las que estoy trabajando en un proyecto para alguien en el que las variables ambientales son necesarias para que el c\u00f3digo sepa si se est\u00e1 ejecutando en desarrollo, ensayo o producci\u00f3n.<\/p>\n<p>Y esto se puede lograr de diferente manera dependiendo de las necesidades del proyecto. A veces, un archivo de configuraci\u00f3n funcionar\u00e1, a veces las variables de cadena de consulta pueden funcionar y otras veces creo que es razonable almacenar una configuraci\u00f3n en la base de datos.<\/p>\n<p>Pero, en lo que respecta a WordPress, creo que acortamos mejores decisiones de dise\u00f1o y arrojamos informaci\u00f3n en la base de datos, espec\u00edficamente la tabla de opciones, cuando las alternativas pueden ser m\u00e1s adecuadas.<\/p>\n<h2>La tabla de opciones de WordPress<\/h2>\n<p>Quiero ser claro: no creo que la tabla de opciones deba servir como un basurero para la configuraci\u00f3n cuando no tienes otro lugar donde poner informaci\u00f3n. Y esa es la esencia de todo este post.<\/p>\n<p>En su lugar, puede utilizar:<\/p>\n<ul>\n<li>un archivo de configuraci\u00f3n,<\/li>\n<li>datos de la sesi\u00f3n (cuando corresponda),<\/li>\n<li>una tabla de base de datos personalizada,<\/li>\n<li>o algo mas.<\/li>\n<\/ul>\n<p>Entonces, \u00bfpor qu\u00e9 vemos que esto sucede con tanta frecuencia? No es que no haya momentos en los que tenga sentido usarlo. Solo creo que abusamos de eso. Pero hay razones por las cuales.<\/p>\n<p><a href=\"https:\/\/codex.wordpress.org\/Option_Reference\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">El Codex de WordPress<\/a> define opciones como esta:<\/p>\n<blockquote>\n<p><strong>Las opciones<\/strong> son piezas de datos que WordPress utiliza para almacenar varias preferencias y ajustes de configuraci\u00f3n.<\/p>\n<\/blockquote>\n<p>Con una definici\u00f3n como esta, es f\u00e1cil ver por qu\u00e9 tantos lo usar\u00e1n como un lugar para almacenar cualquier cosa que no encaje en ning\u00fan otro lugar.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160574-61e70cd8a4ea4.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-160574-61e70cd8a4ea4.png\" alt=\"No contamine la tabla de opciones de WordPress\" ><\/a><\/p>\n<p>En cambio, creo que es importante hacer la pregunta:<\/p>\n<blockquote>\n<p>\u00bfPara qu\u00e9 tipo de almacenamiento son [estos datos] m\u00e1s relevantes?<\/p>\n<\/blockquote>\n<p>Es decir, si est\u00e1 relacionado con publicaciones, \u00bfpor qu\u00e9 no almacenarlo en la metatabla de publicaciones? Lo mismo para metadatos de t\u00e9rminos o comentarios o cualquier otra cosa.<\/p>\n<p>El punto es este:<\/p>\n<p>Encuentre el lugar m\u00e1s l\u00f3gico para almacenar los datos y col\u00f3quelos all\u00ed.<\/p>\n<p>En otras palabras, no arroje datos en la tabla de opciones de WordPress porque no encaja en ning\u00fan otro lugar. Eso lo contamina. En su lugar, encuentre, o cree, el lugar m\u00e1s l\u00f3gico para ello. Probablemente sea evidencia de un olor a c\u00f3digo y ser\u00eda una buena raz\u00f3n para volver a evaluar la arquitectura de su c\u00f3digo y c\u00f3mo se representa la informaci\u00f3n.<\/p>\n<p>Pero, \u00bfc\u00f3mo podr\u00eda ser esto? Es decir, c\u00f3mo tomar\u00edamos un fragmento de c\u00f3digo determinado y cambiar\u00edamos la forma en que se representa en la base de datos.<\/p>\n<p>Desafortunadamente, es dif\u00edcil proporcionar una soluci\u00f3n prescriptiva a esta pregunta cuando existen tantas variaciones en la implementaci\u00f3n de un problema. Entonces, tal vez sea necesaria una gu\u00eda simple:<\/p>\n<p>Si los datos est\u00e1n relacionados con los tipos de datos (o tablas) preexistentes, util\u00edcelos; de lo contrario, considere un archivo de configuraci\u00f3n o una tabla de base de datos personalizada que se asigne a su trabajo.<\/p>\n<p>Estoy seguro de que hay otros factores rectores, pero este es un mejor lugar para comenzar que simplemente contaminar la tabla de opciones de 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>No arroje datos en la tabla de opciones de WordPress porque no encaja en ning\u00fan otro lugar. Eso lo contamina. En su lugar, encuentre, o cree, el lugar m\u00e1s l\u00f3gico para ello.<\/p>\n","protected":false},"author":1,"featured_media":235679,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[716,861],"tags":[1172],"class_list":["post-231126","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desarrollador","category-wordpress-2","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/231126","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=231126"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/231126\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media\/235679"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media?parent=231126"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/categories?post=231126"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/tags?post=231126"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}