[{"id":6317,"date":"2021-10-05T14:33:11","date_gmt":"2021-10-05T12:33:11","guid":{"rendered":"https:\/\/www.dariobf.com\/?p=6317"},"modified":"2024-09-12T16:56:53","modified_gmt":"2024-09-12T14:56:53","slug":"importar-exportar-database-mamp","status":"publish","type":"post","link":"https:\/\/www.dariobf.com\/importar-exportar-database-mamp\/","title":{"rendered":"Importar o exportar bases de datos grandes en MAMP"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">A veces, necesitamos importar o exportar bases de datos muy grandes (varios gigas, incluso) y para hacerlo en local, desde phpmyadmin, tendr\u00edamos que reconfigurar varias cosas, como el max_file_size, tiempo de ejecuci\u00f3n u otras variables de php que pueden interferir en dicha importaci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para evitar tener que configurar tu servidor local, podemos importar (y tambi\u00e9n exportar) las bases de datos directamente desde la terminal de tu mac.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Exportar<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">\/Applications\/MAMP\/library\/bin\/mysqldump -u &#91;usuario_base_de_datos] -p &#91;nombre_base_de_datos] &gt; &#91;ruta_fichero_sql]<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Importar<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">\/Applications\/MAMP\/library\/bin\/mysql -u &#91;usuario_base_de_datos] -p &#91;nombre_base_de_datos] &lt; &#91;ruta_fichero_sql]<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Lenguaje del c\u00f3digo:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Ten en cuenta que, en ambos casos has de sustituir la informaci\u00f3n entre corchetes por los datos de tu base de datos local.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A veces, necesitamos importar o exportar bases de datos muy grandes (varios gigas, incluso) y para hacerlo en local, desde phpmyadmin, tendr\u00edamos que reconfigurar varias cosas, como el max_file_size, tiempo de ejecuci\u00f3n u otras variables de php que pueden interferir en dicha importaci\u00f3n. Para evitar tener que configurar tu servidor local, podemos importar (y tambi\u00e9n [&hellip;]<\/p>\n","protected":false},"author":88919,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"episode_type":"","audio_file":"","podmotor_file_id":"","podmotor_episode_id":"","cover_image":"","cover_image_id":"","duration":"","filesize":"","filesize_raw":"","date_recorded":"","explicit":"","block":"","itunes_episode_number":"","itunes_title":"","itunes_season_number":"","itunes_episode_type":"","footnotes":""},"categories":[282],"tags":[],"class_list":["post-6317","post","type-post","status-publish","format-standard","hentry","category-desarrollo-web"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Importar o exportar bases de datos grandes en MAMP - DarioBF<\/title>\n<meta name=\"description\" content=\"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dariobf.com\/importar-exportar-database-mamp\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Importar o exportar bases de datos grandes en MAMP - DarioBF\" \/>\n<meta property=\"og:description\" content=\"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dariobf.com\/importar-exportar-database-mamp\/\" \/>\n<meta property=\"og:site_name\" content=\"Experto en WordPress - Dario BF\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/dariobf\" \/>\n<meta property=\"article:published_time\" content=\"2021-10-05T12:33:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-12T14:56:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dariobf.com\/wp-content\/uploads\/2016\/04\/opengraph_thumb.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Dario BF\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DarioBF\" \/>\n<meta name=\"twitter:site\" content=\"@DarioBF\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dario BF\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minuto\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/importar-exportar-database-mamp\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/importar-exportar-database-mamp\\\/\"},\"author\":{\"name\":\"Dario BF\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#\\\/schema\\\/person\\\/b9a59b2eb5a4946e38efd1b89a8158bd\"},\"headline\":\"Importar o exportar bases de datos grandes en MAMP\",\"datePublished\":\"2021-10-05T12:33:11+00:00\",\"dateModified\":\"2024-09-12T14:56:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/importar-exportar-database-mamp\\\/\"},\"wordCount\":108,\"commentCount\":0,\"articleSection\":[\"Desarrollo web\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dariobf.com\\\/importar-exportar-database-mamp\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/importar-exportar-database-mamp\\\/\",\"url\":\"https:\\\/\\\/www.dariobf.com\\\/importar-exportar-database-mamp\\\/\",\"name\":\"Importar o exportar bases de datos grandes en MAMP - DarioBF\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#website\"},\"datePublished\":\"2021-10-05T12:33:11+00:00\",\"dateModified\":\"2024-09-12T14:56:53+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#\\\/schema\\\/person\\\/b9a59b2eb5a4946e38efd1b89a8158bd\"},\"description\":\"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/importar-exportar-database-mamp\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dariobf.com\\\/importar-exportar-database-mamp\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/importar-exportar-database-mamp\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/www.dariobf.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Importar o exportar bases de datos grandes en MAMP\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#website\",\"url\":\"https:\\\/\\\/www.dariobf.com\\\/\",\"name\":\"Experto en WordPress - Dario BF\",\"description\":\"Dise\u00f1ador y desarrollador web especializado en WordPress; Front-end HTML5, CSS3 y Javascript.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dariobf.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#\\\/schema\\\/person\\\/b9a59b2eb5a4946e38efd1b89a8158bd\",\"name\":\"Dario BF\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g\",\"caption\":\"Dario BF\"},\"sameAs\":[\"https:\\\/\\\/www.dariobf.com\"],\"url\":\"https:\\\/\\\/www.dariobf.com\\\/author\\\/dbalfer\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Importar o exportar bases de datos grandes en MAMP - DarioBF","description":"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dariobf.com\/importar-exportar-database-mamp\/","og_locale":"es_ES","og_type":"article","og_title":"Importar o exportar bases de datos grandes en MAMP - DarioBF","og_description":"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...","og_url":"https:\/\/www.dariobf.com\/importar-exportar-database-mamp\/","og_site_name":"Experto en WordPress - Dario BF","article_publisher":"https:\/\/facebook.com\/dariobf","article_published_time":"2021-10-05T12:33:11+00:00","article_modified_time":"2024-09-12T14:56:53+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.dariobf.com\/wp-content\/uploads\/2016\/04\/opengraph_thumb.jpg","type":"image\/jpeg"}],"author":"Dario BF","twitter_card":"summary_large_image","twitter_creator":"@DarioBF","twitter_site":"@DarioBF","twitter_misc":{"Escrito por":"Dario BF","Tiempo de lectura":"1 minuto"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dariobf.com\/importar-exportar-database-mamp\/#article","isPartOf":{"@id":"https:\/\/www.dariobf.com\/importar-exportar-database-mamp\/"},"author":{"name":"Dario BF","@id":"https:\/\/www.dariobf.com\/#\/schema\/person\/b9a59b2eb5a4946e38efd1b89a8158bd"},"headline":"Importar o exportar bases de datos grandes en MAMP","datePublished":"2021-10-05T12:33:11+00:00","dateModified":"2024-09-12T14:56:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dariobf.com\/importar-exportar-database-mamp\/"},"wordCount":108,"commentCount":0,"articleSection":["Desarrollo web"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dariobf.com\/importar-exportar-database-mamp\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dariobf.com\/importar-exportar-database-mamp\/","url":"https:\/\/www.dariobf.com\/importar-exportar-database-mamp\/","name":"Importar o exportar bases de datos grandes en MAMP - DarioBF","isPartOf":{"@id":"https:\/\/www.dariobf.com\/#website"},"datePublished":"2021-10-05T12:33:11+00:00","dateModified":"2024-09-12T14:56:53+00:00","author":{"@id":"https:\/\/www.dariobf.com\/#\/schema\/person\/b9a59b2eb5a4946e38efd1b89a8158bd"},"description":"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...","breadcrumb":{"@id":"https:\/\/www.dariobf.com\/importar-exportar-database-mamp\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dariobf.com\/importar-exportar-database-mamp\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dariobf.com\/importar-exportar-database-mamp\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.dariobf.com\/"},{"@type":"ListItem","position":2,"name":"Importar o exportar bases de datos grandes en MAMP"}]},{"@type":"WebSite","@id":"https:\/\/www.dariobf.com\/#website","url":"https:\/\/www.dariobf.com\/","name":"Experto en WordPress - Dario BF","description":"Dise\u00f1ador y desarrollador web especializado en WordPress; Front-end HTML5, CSS3 y Javascript.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dariobf.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.dariobf.com\/#\/schema\/person\/b9a59b2eb5a4946e38efd1b89a8158bd","name":"Dario BF","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g","caption":"Dario BF"},"sameAs":["https:\/\/www.dariobf.com"],"url":"https:\/\/www.dariobf.com\/author\/dbalfer\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts\/6317","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/users\/88919"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/comments?post=6317"}],"version-history":[{"count":0,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts\/6317\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/media?parent=6317"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/categories?post=6317"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/tags?post=6317"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":5655,"date":"2020-08-01T17:15:59","date_gmt":"2020-08-01T15:15:59","guid":{"rendered":"https:\/\/www.dariobf.com\/?p=5655"},"modified":"2024-05-22T12:52:10","modified_gmt":"2024-05-22T10:52:10","slug":"como-funciona-rest-api-wordpress","status":"publish","type":"post","link":"https:\/\/www.dariobf.com\/como-funciona-rest-api-wordpress\/","title":{"rendered":"5 puntos para entender la REST API de WordPress"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">De un tiempo a esta parte encuentro realmente \u00fatil la <strong>REST API de WordPress<\/strong>, te puedes conectar a ella desde diversos puntos tales como una app web, m\u00f3vil o tus propios plugins para consultar o actualizar contenidos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 es una REST API?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Si me pongo en modo Wikipedia, <em>REST<\/em> significa <em>REpresentational State Transfer<\/em> o, si lo prefieres en espa\u00f1ol, <strong>transferencia de estado representacional<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s, podr\u00eda contarte que fue ideado por uno de los autores del protocolo HTTP, pero para eso <a aria-label=\"undefined (abre en una nueva pesta\u00f1a)\" href=\"https:\/\/es.wikipedia.org\/wiki\/Transferencia_de_Estado_Representacional\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">mejor que leas la Wikipedia<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lo que me gustar\u00eda transmitir en este art\u00edculo es el concepto en s\u00ed y c\u00f3mo se comporta o funciona en WordPress.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">B\u00e1sicamente en una REST API existen rutas o puntos (endpoints) que podemos consultar para gestionar informaci\u00f3n de la aplicaci\u00f3n que, en este caso, es WordPress.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dicho de otra forma, podemos consultar, insertar o actualizar la informaci\u00f3n de art\u00edculos, usuarios y dem\u00e1s informaci\u00f3n administrada por WordPress a trav\u00e9s de estos endpoints de la REST API.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">C\u00f3mo funciona la REST API de WordPress, los endpoints<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Una REST API responde a nuestra petici\u00f3n, que realizamos a trav\u00e9s de una URL.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo, podemos visitar la REST API de esta web a trav\u00e9s de <a aria-label=\"undefined (abre en una nueva pesta\u00f1a)\" href=\"https:\/\/www.dariobf.com\/wp-json\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">https:\/\/www.dariobf.com\/wp-json<\/a>, donde vemos que tenemos informaci\u00f3n sobre la misma, pero adem\u00e1s podemos ver los diferentes endpoints de esta.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un endpoint es, b\u00e1sicamente, una ruta que responde a una acci\u00f3n. Despu\u00e9s te explicar\u00e9 esto con m\u00e1s detalle, pero qu\u00e9date con eso por ahora.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si volvemos a la REST API del ejemplo anterior, podemos navegar hasta \u00abroutes\u00bb para ver los diferentes endpoints de mi web.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00edjate que muchos responden a los diferentes plugins que tengo instalados (akismet, ssp, yoast, wp-super-cache&#8230;)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vamos a centrarnos en los nativos de WordPress, que est\u00e1n creados bajo <a aria-label=\"undefined (abre en una nueva pesta\u00f1a)\" href=\"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">https:\/\/www.dariobf.com\/wp-json\/wp\/v2<\/a>. F\u00edjate que el endpoint inicial <em>wp-json<\/em> lo mantenemos; es la ra\u00edz de nuestra REST API de WordPress.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez m\u00e1s, si abrimos el objeto \u00abroutes\u00bb, vemos todos los endpoints que nos proporciona WordPress y, tambi\u00e9n, algunos plugins.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed, adem\u00e1s de las rutas o endpoints, podemos ver los m\u00e9todos para cada uno de ellos.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"104\" src=\"https:\/\/www.dariobf.com\/wp-content\/uploads\/2020\/07\/image.png\" alt=\"\" class=\"wp-image-5657\" srcset=\"https:\/\/www.dariobf.com\/wp-content\/uploads\/2020\/07\/image.png 600w, https:\/\/www.dariobf.com\/wp-content\/uploads\/2020\/07\/image-300x52.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">En este ejemplo puedes ver que el endpoint <em>posts<\/em> tiene dos m\u00e9todos: <em>GET<\/em> y <em>POST<\/em>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Tipos de endpoints<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Un endpoint puede tener diferentes tipolog\u00edas, que te voy a explicar de la manera que yo he entendido (creo que resulta m\u00e1s f\u00e1cil).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pueden ser de <strong>acceso p\u00fablico o restringido<\/strong>, dependiendo de la informaci\u00f3n que se vaya a tratar. Los segundos requerir\u00e1n autenticaci\u00f3n por parte del usuario o aplicaci\u00f3n que est\u00e9 consultando la REST API.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En el ejemplo concreto de WordPress, podemos consultar los art\u00edculos del blog de manera p\u00fablica pero, por ejemplo, no podremos registrar usuarios a trav\u00e9s de la REST API sin identificarnos como usuario con permisos suficientes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s, un mismo endpoint puede responder de diferente manera seg\u00fan el  m\u00e9todo que estemos utilizando.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tenemos, a grandes rasgos, cuatro m\u00e9todos destinados a las siguientes tareas:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>GET<\/strong>: El m\u00e1s utilizado, sirve para <strong>consultar<\/strong> y no siempre necesitar\u00e1 autenticaci\u00f3n.<\/li><li><strong>POST<\/strong>: Sirve para <strong>insertar<\/strong> informaci\u00f3n, lo l\u00f3gico es que requiera autenticarse como usuario con permisos suficientes para la tarea que se va a realizar<\/li><li><strong>PUT<\/strong>: Utilizado para <strong>actualizar<\/strong> informaci\u00f3n ya existente. Lo usaremos para, por ejemplo, actualizar un art\u00edculo o los datos de perfil de un usuario. Tambi\u00e9n suele requerir autenticaci\u00f3n.<\/li><li><strong>DELETE<\/strong>: Para <strong>borrar<\/strong> un contenido existente. Obviamente, recomendable exigir autenticaci\u00f3n.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Puede que, a estas alturas, te preguntes \u00bfpor qu\u00e9 pongo que un endpoint <em>suele requerir autenticaci\u00f3n<\/em> y no lo pongo como algo estrictamente necesario u obligatorio?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bien, la cosa est\u00e1 en que <a aria-label=\"undefined (abre en una nueva pesta\u00f1a)\" href=\"https:\/\/www.dariobf.com\/crear-endpoint-personalizado-rest-api-wordpress\/\" target=\"_blank\" rel=\"noreferrer noopener\">puedes crear los endpoints que necesites<\/a>, totalmente personalizados que hagan la tarea que tu quieras. Esto es, que puedes hacer un endpoint que modifique cosas de la base de datos sin ning\u00fan tipo de restricci\u00f3n o autenticaci\u00f3n. <strong>No tiene sentido<\/strong>, lo se, pero podr\u00eda ser&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s, estos endpoints pueden requerir alg\u00fan par\u00e1metro.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo, si utilizamos un endpoint para art\u00edculos con el m\u00e9todo POST, es porque vamos a insertar, por lo que deberemos especificarle como par\u00e1metros los diferentes valores: t\u00edtulo, extracto, contenido, slug&#8230; <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L\u00f3gicamente, esto depende del endpoint y m\u00e9todo que utilicemos, pero es necesario que sepas que algunos endpoint requieren par\u00e1metros espec\u00edficos y a veces son obligatorios.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un ejemplo claro es el endpoint para inserci\u00f3n de usuarios, donde los par\u00e1metros <em>username<\/em>, <em>email<\/em> y <em>password<\/em> son obligatorios.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ejemplos de uso de la REST API en WordPress<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Una forma buena de ver c\u00f3mo funcionan los endpoints, es con ejemplos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si entras en el endpoint <a aria-label=\"undefined (abre en una nueva pesta\u00f1a)\" href=\"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts<\/a> ver\u00e1s que te muestra los 10 art\u00edculos m\u00e1s recientes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De igual manera, <a aria-label=\"undefined (abre en una nueva pesta\u00f1a)\" href=\"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts\/5150\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts\/5150<\/a>, muestra la informaci\u00f3n correspondiente al art\u00edculo con ID 5150 (el anterior a este), del que podemos extraer, por ejemplo, el t\u00edtulo, contenido, slug, fecha de publicaci\u00f3n&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s, hay endpoints que permiten introducir par\u00e1metros de consulta.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si volvemos al endpoint de art\u00edculos (<a href=\"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts<\/a>), ver\u00e1s que solamente muestra 10 art\u00edculos. Esto lo podemos cambiar con el par\u00e1metro per_page, de la siguiente forma: <a aria-label=\"undefined (abre en una nueva pesta\u00f1a)\" href=\"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts?per_page=100\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts?per_page=100<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tiene <a aria-label=\"undefined (abre en una nueva pesta\u00f1a)\" href=\"https:\/\/developer.wordpress.org\/rest-api\/reference\/posts\/#arguments\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">otros par\u00e1metros de consulta<\/a>, como por ejemplo para filtrar por categor\u00edas, etiquetas, autor&#8230; Vaya, casi como si de un <a href=\"https:\/\/www.dariobf.com\/wp_query-wordpress\/\" target=\"_blank\" aria-label=\"undefined (abre en una nueva pesta\u00f1a)\" rel=\"noreferrer noopener\">WP_Query<\/a> se tratase.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Usos de la REST API de WordPress<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La REST API supuso una actualizaci\u00f3n fuerte en WordPress, ya que pasamos de crear webs monol\u00edticas a generar (casi) cualquier tipo de proyecto online.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos nutrir nuestras apps m\u00f3viles desde la REST API o hacer todo el frontend utilizando librer\u00edas modernas como REACT, lo que conocemos como <a aria-label=\"undefined (abre en una nueva pesta\u00f1a)\" href=\"https:\/\/torquemag.io\/2020\/05\/headless-wordpress\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Headless WordPress<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Estas pr\u00e1cticas ganan en seguridad, ya que WordPress permanece \u00aboculto\u00bb al usuario final, pero sigue d\u00e1ndonos todas sus ventajas como CMS: Gesti\u00f3n de usuarios, gesti\u00f3n de contenidos, f\u00e1cil personalizaci\u00f3n&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En mi caso, me ha servido para hacer an\u00e1lisis masivo de contenidos; buscar patrones o modificar contenidos de forma masiva para, por ejemplo, eliminar o adaptar los contenidos generados por alg\u00fan plugin (shorcodes ejem ejem).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusiones<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Sin duda, una herramienta muy potente que nos ayuda a ampliar el uso de WordPress y llevarlo a otro nivel. Incluso podemos valernos de ella para poder realizar tareas de mantenimiento sobre nuestros contenidos con herramientas m\u00e1s \u00e1giles y modernas.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Te explico de forma sencilla qu\u00e9 es y c\u00f3mo funciona la REST API de WordPress para que entiendas c\u00f3mo funciona y puedas utilizarla en tus proyectos.<\/p>\n","protected":false},"author":88919,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"episode_type":"","audio_file":"","podmotor_file_id":"","podmotor_episode_id":"","cover_image":"","cover_image_id":"","duration":"","filesize":"","filesize_raw":"","date_recorded":"","explicit":"","block":"","itunes_episode_number":"","itunes_title":"","itunes_season_number":"","itunes_episode_type":"","footnotes":""},"categories":[282,284],"tags":[],"class_list":["post-5655","post","type-post","status-publish","format-standard","hentry","category-desarrollo-web","category-wordpress"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>5 puntos para entender la REST API de WordPress - DarioBF<\/title>\n<meta name=\"description\" content=\"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dariobf.com\/como-funciona-rest-api-wordpress\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"5 puntos para entender la REST API de WordPress - DarioBF\" \/>\n<meta property=\"og:description\" content=\"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dariobf.com\/como-funciona-rest-api-wordpress\/\" \/>\n<meta property=\"og:site_name\" content=\"Experto en WordPress - Dario BF\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/dariobf\" \/>\n<meta property=\"article:published_time\" content=\"2020-08-01T15:15:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-22T10:52:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dariobf.com\/wp-content\/uploads\/2020\/07\/image.png\" \/>\n<meta name=\"author\" content=\"Dario BF\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DarioBF\" \/>\n<meta name=\"twitter:site\" content=\"@DarioBF\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dario BF\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/como-funciona-rest-api-wordpress\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/como-funciona-rest-api-wordpress\\\/\"},\"author\":{\"name\":\"Dario BF\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#\\\/schema\\\/person\\\/b9a59b2eb5a4946e38efd1b89a8158bd\"},\"headline\":\"5 puntos para entender la REST API de WordPress\",\"datePublished\":\"2020-08-01T15:15:59+00:00\",\"dateModified\":\"2024-05-22T10:52:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/como-funciona-rest-api-wordpress\\\/\"},\"wordCount\":1144,\"commentCount\":6,\"image\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/como-funciona-rest-api-wordpress\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dariobf.com\\\/wp-content\\\/uploads\\\/2020\\\/07\\\/image.png\",\"articleSection\":[\"Desarrollo web\",\"WordPress\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dariobf.com\\\/como-funciona-rest-api-wordpress\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/como-funciona-rest-api-wordpress\\\/\",\"url\":\"https:\\\/\\\/www.dariobf.com\\\/como-funciona-rest-api-wordpress\\\/\",\"name\":\"5 puntos para entender la REST API de WordPress - DarioBF\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/como-funciona-rest-api-wordpress\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/como-funciona-rest-api-wordpress\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dariobf.com\\\/wp-content\\\/uploads\\\/2020\\\/07\\\/image.png\",\"datePublished\":\"2020-08-01T15:15:59+00:00\",\"dateModified\":\"2024-05-22T10:52:10+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#\\\/schema\\\/person\\\/b9a59b2eb5a4946e38efd1b89a8158bd\"},\"description\":\"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/como-funciona-rest-api-wordpress\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dariobf.com\\\/como-funciona-rest-api-wordpress\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/como-funciona-rest-api-wordpress\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.dariobf.com\\\/wp-content\\\/uploads\\\/2020\\\/07\\\/image.png\",\"contentUrl\":\"https:\\\/\\\/www.dariobf.com\\\/wp-content\\\/uploads\\\/2020\\\/07\\\/image.png\",\"width\":600,\"height\":104},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/como-funciona-rest-api-wordpress\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/www.dariobf.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"5 puntos para entender la REST API de WordPress\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#website\",\"url\":\"https:\\\/\\\/www.dariobf.com\\\/\",\"name\":\"Experto en WordPress - Dario BF\",\"description\":\"Dise\u00f1ador y desarrollador web especializado en WordPress; Front-end HTML5, CSS3 y Javascript.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dariobf.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#\\\/schema\\\/person\\\/b9a59b2eb5a4946e38efd1b89a8158bd\",\"name\":\"Dario BF\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g\",\"caption\":\"Dario BF\"},\"sameAs\":[\"https:\\\/\\\/www.dariobf.com\"],\"url\":\"https:\\\/\\\/www.dariobf.com\\\/author\\\/dbalfer\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"5 puntos para entender la REST API de WordPress - DarioBF","description":"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dariobf.com\/como-funciona-rest-api-wordpress\/","og_locale":"es_ES","og_type":"article","og_title":"5 puntos para entender la REST API de WordPress - DarioBF","og_description":"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...","og_url":"https:\/\/www.dariobf.com\/como-funciona-rest-api-wordpress\/","og_site_name":"Experto en WordPress - Dario BF","article_publisher":"https:\/\/facebook.com\/dariobf","article_published_time":"2020-08-01T15:15:59+00:00","article_modified_time":"2024-05-22T10:52:10+00:00","og_image":[{"url":"https:\/\/www.dariobf.com\/wp-content\/uploads\/2020\/07\/image.png","type":"","width":"","height":""}],"author":"Dario BF","twitter_card":"summary_large_image","twitter_creator":"@DarioBF","twitter_site":"@DarioBF","twitter_misc":{"Escrito por":"Dario BF","Tiempo de lectura":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dariobf.com\/como-funciona-rest-api-wordpress\/#article","isPartOf":{"@id":"https:\/\/www.dariobf.com\/como-funciona-rest-api-wordpress\/"},"author":{"name":"Dario BF","@id":"https:\/\/www.dariobf.com\/#\/schema\/person\/b9a59b2eb5a4946e38efd1b89a8158bd"},"headline":"5 puntos para entender la REST API de WordPress","datePublished":"2020-08-01T15:15:59+00:00","dateModified":"2024-05-22T10:52:10+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dariobf.com\/como-funciona-rest-api-wordpress\/"},"wordCount":1144,"commentCount":6,"image":{"@id":"https:\/\/www.dariobf.com\/como-funciona-rest-api-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dariobf.com\/wp-content\/uploads\/2020\/07\/image.png","articleSection":["Desarrollo web","WordPress"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dariobf.com\/como-funciona-rest-api-wordpress\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dariobf.com\/como-funciona-rest-api-wordpress\/","url":"https:\/\/www.dariobf.com\/como-funciona-rest-api-wordpress\/","name":"5 puntos para entender la REST API de WordPress - DarioBF","isPartOf":{"@id":"https:\/\/www.dariobf.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dariobf.com\/como-funciona-rest-api-wordpress\/#primaryimage"},"image":{"@id":"https:\/\/www.dariobf.com\/como-funciona-rest-api-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dariobf.com\/wp-content\/uploads\/2020\/07\/image.png","datePublished":"2020-08-01T15:15:59+00:00","dateModified":"2024-05-22T10:52:10+00:00","author":{"@id":"https:\/\/www.dariobf.com\/#\/schema\/person\/b9a59b2eb5a4946e38efd1b89a8158bd"},"description":"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...","breadcrumb":{"@id":"https:\/\/www.dariobf.com\/como-funciona-rest-api-wordpress\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dariobf.com\/como-funciona-rest-api-wordpress\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.dariobf.com\/como-funciona-rest-api-wordpress\/#primaryimage","url":"https:\/\/www.dariobf.com\/wp-content\/uploads\/2020\/07\/image.png","contentUrl":"https:\/\/www.dariobf.com\/wp-content\/uploads\/2020\/07\/image.png","width":600,"height":104},{"@type":"BreadcrumbList","@id":"https:\/\/www.dariobf.com\/como-funciona-rest-api-wordpress\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.dariobf.com\/"},{"@type":"ListItem","position":2,"name":"5 puntos para entender la REST API de WordPress"}]},{"@type":"WebSite","@id":"https:\/\/www.dariobf.com\/#website","url":"https:\/\/www.dariobf.com\/","name":"Experto en WordPress - Dario BF","description":"Dise\u00f1ador y desarrollador web especializado en WordPress; Front-end HTML5, CSS3 y Javascript.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dariobf.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.dariobf.com\/#\/schema\/person\/b9a59b2eb5a4946e38efd1b89a8158bd","name":"Dario BF","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g","caption":"Dario BF"},"sameAs":["https:\/\/www.dariobf.com"],"url":"https:\/\/www.dariobf.com\/author\/dbalfer\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts\/5655","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/users\/88919"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/comments?post=5655"}],"version-history":[{"count":0,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts\/5655\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/media?parent=5655"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/categories?post=5655"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/tags?post=5655"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":5150,"date":"2020-01-30T13:30:31","date_gmt":"2020-01-30T11:30:31","guid":{"rendered":"https:\/\/www.dariobf.com\/?p=5150"},"modified":"2024-09-12T16:34:09","modified_gmt":"2024-09-12T14:34:09","slug":"configurar-wordpress-coding-standards-vscode","status":"publish","type":"post","link":"https:\/\/www.dariobf.com\/configurar-wordpress-coding-standards-vscode\/","title":{"rendered":"C\u00f3mo configurar VSCode con los PHP Coding Standards de WordPress en Mac"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Los PHP Coding Standards de WordPress son los est\u00e1ndares (valga la redundancia) que ha marcado la Comunidad WordPress para unificar la forma en la que escribimos el PHP de nuestros plugins y temas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De forma muy resumida, son unas reglas a cumplir sobre c\u00f3mo escribir nuestro c\u00f3digo PHP (par\u00e9ntesis, declaraci\u00f3n de variables, identaci\u00f3n&#8230;).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Puedes revisar toda la documentaci\u00f3n y una gu\u00eda de instalaci\u00f3n en <a href=\"https:\/\/github.com\/WordPress\/WordPress-Coding-Standards\">el repositorio de GitHub<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No obstante, te voy a explicar c\u00f3mo lo he hecho yo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Instalar Composer de forma global<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Te recomiendo moverte a un directorio donde poder \u00abmanchar\u00bb, por ejemplo descargas:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\"><span class=\"hljs-built_in\">cd<\/span> Downloads<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Lenguaje del c\u00f3digo:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Hacemos la descarga<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">curl -sS https:\/\/getcomposer.org\/installer | php<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Lenguaje del c\u00f3digo:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Y ahora hacemos que sea accesible de forma global:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">mv composer.phar \/usr\/<span class=\"hljs-built_in\">local<\/span>\/bin<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Lenguaje del c\u00f3digo:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">A\u00f1adimos el alias para poder utilizarlo f\u00e1cil y c\u00f3modamente:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\"><span class=\"hljs-built_in\">alias<\/span> composer=<span class=\"hljs-string\">\"php \/usr\/local\/bin\/composer.phar\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Lenguaje del c\u00f3digo:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Y ya podemos usar el comando <em>composer<\/em>:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"842\" height=\"736\" src=\"https:\/\/www.dariobf.com\/wp-content\/uploads\/2020\/01\/imagen.png\" alt=\"\" class=\"wp-image-5152\" srcset=\"https:\/\/www.dariobf.com\/wp-content\/uploads\/2020\/01\/imagen.png 842w, https:\/\/www.dariobf.com\/wp-content\/uploads\/2020\/01\/imagen-300x262.png 300w\" sizes=\"auto, (max-width: 842px) 100vw, 842px\" \/><figcaption class=\"wp-element-caption\">Figura 1: Captura de pantalla del comando composer ejecutado en terminal<br><\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Activar validaci\u00f3n PHP en VSCode<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Necesitamos saber en qu\u00e9 directorio est\u00e1 PHP, esto podemos hacerlo con which php; habitualmente ser\u00e1 \/usr\/bin\/php.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Con esta ruta a mano, nos vamos a VSCode y, en el men\u00fa superior, vamos a Code-&gt;Preferences-&gt;Settings. Una vez aqu\u00ed, buscamos por \u00abphp\u00bb y configuramos lo siguiente:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>PHP > Suggest Basic<\/strong> &#8211; Debe estar marcado<\/li>\n\n\n\n<li><strong>PHP > Validate: Enable<\/strong> &#8211; Debe estar marcado<\/li>\n\n\n\n<li><strong>PHP > Validate: Run<\/strong> &#8211; Lo configuras como quieras. Yo he probado tanto \u00abOnSave\u00bb como \u00abOnType\u00bb; me gusta m\u00e1s \u00abOnType\u00bb, as\u00ed voy viendo los fallos a medida que programo<\/li>\n\n\n\n<li><strong>PHP > Validate: Executable Path<\/strong> &#8211; Para configurarlo, abre el  fichero <em>settings.json<\/em> pulsando el enlace que aparece. Aqu\u00ed has de a\u00f1adir la l\u00ednea \u00abphp.validate.executablePath\u00bb: \u00ab\/usr\/bin\/php\u00bb, donde \/usr\/bin\/php es la ruta que recogimos al principio de esta secci\u00f3n.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando hayas configurado todo esto, debe aparecer algo as\u00ed en el settings.json:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"JSON \/ JSON con comentarios\" data-shcb-language-slug=\"json\"><span><code class=\"hljs language-json\">{\n   <span class=\"hljs-attr\">\"php.validate.run\"<\/span>: <span class=\"hljs-string\">\"onType\"<\/span>,\n   <span class=\"hljs-attr\">\"php.suggest.basic\"<\/span>: <span class=\"hljs-literal\">true<\/span>,\n   <span class=\"hljs-attr\">\"php.validate.executablePath\"<\/span>: <span class=\"hljs-string\">\"\/usr\/bin\/php\"<\/span>,\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Lenguaje del c\u00f3digo:<\/span> <span class=\"shcb-language__name\">JSON \/ JSON con comentarios<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">json<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Por supuesto, aparecer\u00e1n m\u00e1s opciones si tienes alguna configuraci\u00f3n extra en VSCode.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Instalar PHP Code Sniffer<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La forma m\u00e1s f\u00e1cil de instalar el PHP Code Sniffer es con <a href=\"https:\/\/brew.sh\/\">brew<\/a>, aseg\u00farate de tenerlo instalado y actualizado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Instala el Code Sniffer con este comando:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">brew install php-code-sniffer<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Lenguaje del c\u00f3digo:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Ya tenemos instalado el PHP Code Sniffer en nuestro Mac.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A\u00f1adir el CodeSniffer de PHP a VSCode<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Un CodeSniffer es el software encargado de analizar nuestro c\u00f3digo en busca de patrones.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Como vamos a usar los WordPress Coding Standards, nuestro PHP CodeSniffer debe estar configurado con los patrones de WordPress.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">CodeSniffers para VSCode hay varios, pero yo estoy utilizando <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ikappas.phpcs\">phpcs<\/a>. basta con instalarlo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Definiendo los WordPress Coding Standards<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Antes de configurar nuestro CodeSniffer, necesitamos definir los Coding Standards que va a utilizar, en nuestro caso los de WordPress.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Necesitamos descargar los <a href=\"https:\/\/github.com\/WordPress\/WordPress-Coding-Standards\">WordPress Coding Standards<\/a> de GitHub.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Llegados a este punto, quiz\u00e1 tambi\u00e9n te interesen los <a href=\"https:\/\/github.com\/PHPCompatibility\/PHPCompatibility\">PHP Compatibility Coding Standards<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sea como fuere, necesitamos descargarlos en nuestro Mac. Hazlo en una carpeta persistente, es decir, desc\u00e1rgalo en un sitio para no moverlo o tu CodeSniffer no lo encontrar\u00e1 y se romper\u00e1. En este ejemplo solamente instalar\u00e9 el WordPress Coding Standard<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\"><span class=\"hljs-built_in\">cd<\/span> ~\nmkdir CodeSniffer\n<span class=\"hljs-built_in\">cd<\/span> CodeSniffer\ngit <span class=\"hljs-built_in\">clone<\/span> https:\/\/github.com\/WordPress\/WordPress-Coding-Standards<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Lenguaje del c\u00f3digo:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">En mi caso, lo descargar\u00e9 en ~\/CodeSniffer, as\u00ed lo tengo localizado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Listo, ya tenemos descargado el <strong>WordPress PHP Coding Standard<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Configurar las rutas del PHP CodeSniffer<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora que ya tenemos los WordPress Coding Standard instalados en nuestro equipo, necesitamos decirle al CodeSniffer d\u00f3nde est\u00e1n para que haga uso de ellos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos revisar la configuraci\u00f3n actual de nuestro PHP Code Sniffer con <em>phpcs &#8211;config-show<\/em>.<\/p>\n\n\n\n<p class=\"has-background wp-block-paragraph\" style=\"background-color:#dfdfdf\"><strong><span style=\"color: #ff0000;\" class=\"ugb-highlight\">\u00a1CUIDADO<\/span><\/strong>! Lo siguiente que vamos a hacer sobreescribe la configuraci\u00f3n actual de tu PHP Code Sniffer, hazlo bajo tu propia responsabilidad.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora, lo que hacemos es configurar la ruta del PHP Code Sniffer con este comando:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">phpcs --config-set installed_paths ~\/CodeSniffer\/WordPress-Coding-Standards<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Lenguaje del c\u00f3digo:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Recuerda cambiar la ruta <em>~\/CodeSniffer\/WordPress-Coding-Standards<\/em> por la tuya.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Decirle a VSCode que utilice el standard de WordPress<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El \u00faltimo paso, ahora que tenemos todo instalado, es decirle al phpcs de VSCode que tiene que utilizar el code standard de WordPress.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para ello, al igual que en el paso donde activamos la validaci\u00f3n php en VSCode, abrimos el fichero settings.json de VSCode y agregamos la siguiente linea:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\"><span class=\"hljs-string\">\"phpcs.standard\"<\/span>: <span class=\"hljs-string\">\"WordPress\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Lenguaje del c\u00f3digo:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">\u00a1Listo! Ya puedes disfrutar de tu <strong>VSCode con los WordPress Coding Standards<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si abres cualquier tema o plugin y tiene fallos, el PHP Code Sniffer har\u00e1 su trabajo y te mostrar\u00e1 \u00aberrores\u00bb como este:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"727\" height=\"98\" src=\"https:\/\/www.dariobf.com\/wp-content\/uploads\/2020\/01\/imagen-1.png\" alt=\"\" class=\"wp-image-5154\" srcset=\"https:\/\/www.dariobf.com\/wp-content\/uploads\/2020\/01\/imagen-1.png 727w, https:\/\/www.dariobf.com\/wp-content\/uploads\/2020\/01\/imagen-1-300x40.png 300w, https:\/\/www.dariobf.com\/wp-content\/uploads\/2020\/01\/imagen-1-600x81.png 600w\" sizes=\"auto, (max-width: 727px) 100vw, 727px\" \/><figcaption class=\"wp-element-caption\">Figura 2: Ejemplo de error del PHP Code Sniffer con los WordPress Coding Standards<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">No te preocupes, aunque los muestre como error, no son tal y podr\u00e1s guardar tus ficheros y ejecutarlos, funcionando correctamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A partir de ahora, ya sabes, \u00a1a programar en base a est\u00e1ndares!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Los PHP Coding Standards de WordPress son los que ha marcado la Comunidad WordPress para unificar la forma en la que escribimos el PHP de nuestros plugins y temas. \u00a1Aprende a trabajar con ellos!<\/p>\n","protected":false},"author":88919,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"episode_type":"","audio_file":"","podmotor_file_id":"","podmotor_episode_id":"","cover_image":"","cover_image_id":"","duration":"","filesize":"","filesize_raw":"","date_recorded":"","explicit":"","block":"","itunes_episode_number":"","itunes_title":"","itunes_season_number":"","itunes_episode_type":"","footnotes":""},"categories":[284],"tags":[],"class_list":["post-5150","post","type-post","status-publish","format-standard","hentry","category-wordpress"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>C\u00f3mo configurar VSCode con los PHP Coding Standards de WordPress en Mac - DarioBF<\/title>\n<meta name=\"description\" content=\"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dariobf.com\/configurar-wordpress-coding-standards-vscode\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C\u00f3mo configurar VSCode con los PHP Coding Standards de WordPress en Mac - DarioBF\" \/>\n<meta property=\"og:description\" content=\"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dariobf.com\/configurar-wordpress-coding-standards-vscode\/\" \/>\n<meta property=\"og:site_name\" content=\"Experto en WordPress - Dario BF\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/dariobf\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-30T11:30:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-12T14:34:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dariobf.com\/wp-content\/uploads\/2020\/01\/imagen.png\" \/>\n<meta name=\"author\" content=\"Dario BF\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DarioBF\" \/>\n<meta name=\"twitter:site\" content=\"@DarioBF\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dario BF\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/configurar-wordpress-coding-standards-vscode\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/configurar-wordpress-coding-standards-vscode\\\/\"},\"author\":{\"name\":\"Dario BF\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#\\\/schema\\\/person\\\/b9a59b2eb5a4946e38efd1b89a8158bd\"},\"headline\":\"C\u00f3mo configurar VSCode con los PHP Coding Standards de WordPress en Mac\",\"datePublished\":\"2020-01-30T11:30:31+00:00\",\"dateModified\":\"2024-09-12T14:34:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/configurar-wordpress-coding-standards-vscode\\\/\"},\"wordCount\":771,\"commentCount\":2,\"image\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/configurar-wordpress-coding-standards-vscode\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dariobf.com\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/imagen.png\",\"articleSection\":[\"WordPress\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dariobf.com\\\/configurar-wordpress-coding-standards-vscode\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/configurar-wordpress-coding-standards-vscode\\\/\",\"url\":\"https:\\\/\\\/www.dariobf.com\\\/configurar-wordpress-coding-standards-vscode\\\/\",\"name\":\"C\u00f3mo configurar VSCode con los PHP Coding Standards de WordPress en Mac - DarioBF\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/configurar-wordpress-coding-standards-vscode\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/configurar-wordpress-coding-standards-vscode\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dariobf.com\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/imagen.png\",\"datePublished\":\"2020-01-30T11:30:31+00:00\",\"dateModified\":\"2024-09-12T14:34:09+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#\\\/schema\\\/person\\\/b9a59b2eb5a4946e38efd1b89a8158bd\"},\"description\":\"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/configurar-wordpress-coding-standards-vscode\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dariobf.com\\\/configurar-wordpress-coding-standards-vscode\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/configurar-wordpress-coding-standards-vscode\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.dariobf.com\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/imagen.png\",\"contentUrl\":\"https:\\\/\\\/www.dariobf.com\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/imagen.png\",\"width\":842,\"height\":736},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/configurar-wordpress-coding-standards-vscode\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/www.dariobf.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C\u00f3mo configurar VSCode con los PHP Coding Standards de WordPress en Mac\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#website\",\"url\":\"https:\\\/\\\/www.dariobf.com\\\/\",\"name\":\"Experto en WordPress - Dario BF\",\"description\":\"Dise\u00f1ador y desarrollador web especializado en WordPress; Front-end HTML5, CSS3 y Javascript.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dariobf.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#\\\/schema\\\/person\\\/b9a59b2eb5a4946e38efd1b89a8158bd\",\"name\":\"Dario BF\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g\",\"caption\":\"Dario BF\"},\"sameAs\":[\"https:\\\/\\\/www.dariobf.com\"],\"url\":\"https:\\\/\\\/www.dariobf.com\\\/author\\\/dbalfer\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"C\u00f3mo configurar VSCode con los PHP Coding Standards de WordPress en Mac - DarioBF","description":"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dariobf.com\/configurar-wordpress-coding-standards-vscode\/","og_locale":"es_ES","og_type":"article","og_title":"C\u00f3mo configurar VSCode con los PHP Coding Standards de WordPress en Mac - DarioBF","og_description":"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...","og_url":"https:\/\/www.dariobf.com\/configurar-wordpress-coding-standards-vscode\/","og_site_name":"Experto en WordPress - Dario BF","article_publisher":"https:\/\/facebook.com\/dariobf","article_published_time":"2020-01-30T11:30:31+00:00","article_modified_time":"2024-09-12T14:34:09+00:00","og_image":[{"url":"https:\/\/www.dariobf.com\/wp-content\/uploads\/2020\/01\/imagen.png","type":"","width":"","height":""}],"author":"Dario BF","twitter_card":"summary_large_image","twitter_creator":"@DarioBF","twitter_site":"@DarioBF","twitter_misc":{"Escrito por":"Dario BF","Tiempo de lectura":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dariobf.com\/configurar-wordpress-coding-standards-vscode\/#article","isPartOf":{"@id":"https:\/\/www.dariobf.com\/configurar-wordpress-coding-standards-vscode\/"},"author":{"name":"Dario BF","@id":"https:\/\/www.dariobf.com\/#\/schema\/person\/b9a59b2eb5a4946e38efd1b89a8158bd"},"headline":"C\u00f3mo configurar VSCode con los PHP Coding Standards de WordPress en Mac","datePublished":"2020-01-30T11:30:31+00:00","dateModified":"2024-09-12T14:34:09+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dariobf.com\/configurar-wordpress-coding-standards-vscode\/"},"wordCount":771,"commentCount":2,"image":{"@id":"https:\/\/www.dariobf.com\/configurar-wordpress-coding-standards-vscode\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dariobf.com\/wp-content\/uploads\/2020\/01\/imagen.png","articleSection":["WordPress"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dariobf.com\/configurar-wordpress-coding-standards-vscode\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dariobf.com\/configurar-wordpress-coding-standards-vscode\/","url":"https:\/\/www.dariobf.com\/configurar-wordpress-coding-standards-vscode\/","name":"C\u00f3mo configurar VSCode con los PHP Coding Standards de WordPress en Mac - DarioBF","isPartOf":{"@id":"https:\/\/www.dariobf.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dariobf.com\/configurar-wordpress-coding-standards-vscode\/#primaryimage"},"image":{"@id":"https:\/\/www.dariobf.com\/configurar-wordpress-coding-standards-vscode\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dariobf.com\/wp-content\/uploads\/2020\/01\/imagen.png","datePublished":"2020-01-30T11:30:31+00:00","dateModified":"2024-09-12T14:34:09+00:00","author":{"@id":"https:\/\/www.dariobf.com\/#\/schema\/person\/b9a59b2eb5a4946e38efd1b89a8158bd"},"description":"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...","breadcrumb":{"@id":"https:\/\/www.dariobf.com\/configurar-wordpress-coding-standards-vscode\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dariobf.com\/configurar-wordpress-coding-standards-vscode\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.dariobf.com\/configurar-wordpress-coding-standards-vscode\/#primaryimage","url":"https:\/\/www.dariobf.com\/wp-content\/uploads\/2020\/01\/imagen.png","contentUrl":"https:\/\/www.dariobf.com\/wp-content\/uploads\/2020\/01\/imagen.png","width":842,"height":736},{"@type":"BreadcrumbList","@id":"https:\/\/www.dariobf.com\/configurar-wordpress-coding-standards-vscode\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.dariobf.com\/"},{"@type":"ListItem","position":2,"name":"C\u00f3mo configurar VSCode con los PHP Coding Standards de WordPress en Mac"}]},{"@type":"WebSite","@id":"https:\/\/www.dariobf.com\/#website","url":"https:\/\/www.dariobf.com\/","name":"Experto en WordPress - Dario BF","description":"Dise\u00f1ador y desarrollador web especializado en WordPress; Front-end HTML5, CSS3 y Javascript.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dariobf.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.dariobf.com\/#\/schema\/person\/b9a59b2eb5a4946e38efd1b89a8158bd","name":"Dario BF","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g","caption":"Dario BF"},"sameAs":["https:\/\/www.dariobf.com"],"url":"https:\/\/www.dariobf.com\/author\/dbalfer\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts\/5150","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/users\/88919"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/comments?post=5150"}],"version-history":[{"count":0,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts\/5150\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/media?parent=5150"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/categories?post=5150"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/tags?post=5150"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":4821,"date":"2019-11-20T18:51:21","date_gmt":"2019-11-20T16:51:21","guid":{"rendered":"https:\/\/www.dariobf.com\/?p=4821"},"modified":"2024-09-12T16:34:37","modified_gmt":"2024-09-12T14:34:37","slug":"comentarios-prioridad-wordpress","status":"publish","type":"post","link":"https:\/\/www.dariobf.com\/comentarios-prioridad-wordpress\/","title":{"rendered":"Enganchar los comentarios de WordPress a the_content con prioridad"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Un problema que se puede dar en seg\u00fan qu\u00e9 ocasi\u00f3n con WordPress es la posici\u00f3n de la caja de comentarios.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En un proyecto concreto no ten\u00edamos los comentarios visibles, sino que era un bot\u00f3n que funcionaba como disparador y se mostraban al pulsar en \u00e9l.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El caso es que, con tanto plugin que engancha cosas al filtro <em>the_content<\/em>, los comentarios aparec\u00edan demasiado abajo en la p\u00e1gina, por lo que perd\u00eda interacci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una forma de solucionar esto era enganchar los comentarios a <em>the_content<\/em> igual que hacen los dem\u00e1s plugins y as\u00ed poder jugar con la prioridad de ejecuci\u00f3n.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">El c\u00f3digo<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-code-table shcb-line-numbers\"><span class='shcb-loc'><span><span class=\"hljs-comment\">\/**<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-comment\"> * Adds comments just before content, nothing between them<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-comment\"> *\/<\/span>\n<\/span><\/span><span class='shcb-loc'><span>add_filter( <span class=\"hljs-string\">'the_content'<\/span>, <span class=\"hljs-string\">'bf_comments_content'<\/span>, <span class=\"hljs-number\">10<\/span>);\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">bf_comments_content<\/span><span class=\"hljs-params\">( $content)<\/span> <\/span>{\n<\/span><\/span><span class='shcb-loc'><span>\t<span class=\"hljs-keyword\">if<\/span>( is_single() &amp;&amp; comments_open() ) {\n<\/span><\/span><span class='shcb-loc'><span>\t\tob_start();\n<\/span><\/span><span class='shcb-loc'><span>\t\tcomments_template();\n<\/span><\/span><span class='shcb-loc'><span>\t\t$comments = ob_get_contents();\n<\/span><\/span><span class='shcb-loc'><span>\t\tob_end_clean();\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>\t\t<span class=\"hljs-keyword\">return<\/span> $content . $comments;\n<\/span><\/span><span class='shcb-loc'><span>\t}\n<\/span><\/span><span class='shcb-loc'><span>\t<span class=\"hljs-keyword\">else<\/span> {\n<\/span><\/span><span class='shcb-loc'><span>\t\t<span class=\"hljs-keyword\">return<\/span> $content;\n<\/span><\/span><span class='shcb-loc'><span>\t}\n<\/span><\/span><span class='shcb-loc'><span>}\n<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Lenguaje del c\u00f3digo:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">El funcionamiento, en realidad, es bastante simple.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Primero enganchamos la funci\u00f3n <em>bf_comments_content<\/em> al filtro <em>the_content<\/em> (para que lo ejecute despu\u00e9s de llamar al contenido), utilizando <em><a rel=\"noreferrer noopener\" aria-label=\"add_filter (abre en una nueva pesta\u00f1a)\" href=\"https:\/\/developer.wordpress.org\/reference\/functions\/add_filter\/\" target=\"_blank\">add_filter<\/a><\/em> (ver referencia para entender c\u00f3mo funciona la prioridad).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La funci\u00f3n comprueba que estamos visualizando la plantilla del single (la utilizada para las entradas de WordPress) y que los comentarios est\u00e1n abiertos para dicha entrada.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hacemos uso de <a rel=\"noreferrer noopener\" aria-label=\"ob_start (abre en una nueva pesta\u00f1a)\" href=\"https:\/\/www.php.net\/manual\/es\/function.ob-start.php\" target=\"_blank\">ob_start<\/a>, que en resumidas cuentas almacena en b\u00fafer todo lo que ejecutemos a continuaci\u00f3n; en nuestro caso la llamada a <em>comments_template()<\/em> que imprime los comentarios y toda su funcionalidad.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Recogemos el contenido de esa llamada a <em>comments_template()<\/em> en una variable con <em>ob_get_contents()<\/em>, limpiamos el buffer y devolvemos el contenido de la variable concatenado al contenido original.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bastante f\u00e1cil, \u00bfverdad?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Como digo, la utilidad reside en poder utilizar prioridad sobre el orden de ejecuci\u00f3n de, por ejemplo, todos los plugins que inyectan contenidos en el filtro <em>the_content<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si te ha resultado \u00fatil, no dudes en compartirlo y dejar un comentario. Si conoces un sistema mejor, tambi\u00e9n te agradezco un comentario.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Te comparto una funci\u00f3n sencilla que te permite jugar con la prioridad de ejecuci\u00f3n de los comentarios en WordPress.<\/p>\n","protected":false},"author":88919,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"episode_type":"","audio_file":"","podmotor_file_id":"","podmotor_episode_id":"","cover_image":"","cover_image_id":"","duration":"","filesize":"","filesize_raw":"","date_recorded":"","explicit":"","block":"","itunes_episode_number":"","itunes_title":"","itunes_season_number":"","itunes_episode_type":"","footnotes":""},"categories":[284],"tags":[],"class_list":["post-4821","post","type-post","status-publish","format-standard","hentry","category-wordpress"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Enganchar los comentarios de WordPress a the_content con prioridad - DarioBF<\/title>\n<meta name=\"description\" content=\"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dariobf.com\/comentarios-prioridad-wordpress\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Enganchar los comentarios de WordPress a the_content con prioridad - DarioBF\" \/>\n<meta property=\"og:description\" content=\"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dariobf.com\/comentarios-prioridad-wordpress\/\" \/>\n<meta property=\"og:site_name\" content=\"Experto en WordPress - Dario BF\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/dariobf\" \/>\n<meta property=\"article:published_time\" content=\"2019-11-20T16:51:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-12T14:34:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dariobf.com\/wp-content\/uploads\/2016\/04\/opengraph_thumb.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Dario BF\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DarioBF\" \/>\n<meta name=\"twitter:site\" content=\"@DarioBF\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dario BF\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/comentarios-prioridad-wordpress\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/comentarios-prioridad-wordpress\\\/\"},\"author\":{\"name\":\"Dario BF\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#\\\/schema\\\/person\\\/b9a59b2eb5a4946e38efd1b89a8158bd\"},\"headline\":\"Enganchar los comentarios de WordPress a the_content con prioridad\",\"datePublished\":\"2019-11-20T16:51:21+00:00\",\"dateModified\":\"2024-09-12T14:34:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/comentarios-prioridad-wordpress\\\/\"},\"wordCount\":315,\"commentCount\":2,\"articleSection\":[\"WordPress\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dariobf.com\\\/comentarios-prioridad-wordpress\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/comentarios-prioridad-wordpress\\\/\",\"url\":\"https:\\\/\\\/www.dariobf.com\\\/comentarios-prioridad-wordpress\\\/\",\"name\":\"Enganchar los comentarios de WordPress a the_content con prioridad - DarioBF\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#website\"},\"datePublished\":\"2019-11-20T16:51:21+00:00\",\"dateModified\":\"2024-09-12T14:34:37+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#\\\/schema\\\/person\\\/b9a59b2eb5a4946e38efd1b89a8158bd\"},\"description\":\"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/comentarios-prioridad-wordpress\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dariobf.com\\\/comentarios-prioridad-wordpress\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/comentarios-prioridad-wordpress\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/www.dariobf.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Enganchar los comentarios de WordPress a the_content con prioridad\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#website\",\"url\":\"https:\\\/\\\/www.dariobf.com\\\/\",\"name\":\"Experto en WordPress - Dario BF\",\"description\":\"Dise\u00f1ador y desarrollador web especializado en WordPress; Front-end HTML5, CSS3 y Javascript.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dariobf.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#\\\/schema\\\/person\\\/b9a59b2eb5a4946e38efd1b89a8158bd\",\"name\":\"Dario BF\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g\",\"caption\":\"Dario BF\"},\"sameAs\":[\"https:\\\/\\\/www.dariobf.com\"],\"url\":\"https:\\\/\\\/www.dariobf.com\\\/author\\\/dbalfer\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Enganchar los comentarios de WordPress a the_content con prioridad - DarioBF","description":"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dariobf.com\/comentarios-prioridad-wordpress\/","og_locale":"es_ES","og_type":"article","og_title":"Enganchar los comentarios de WordPress a the_content con prioridad - DarioBF","og_description":"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...","og_url":"https:\/\/www.dariobf.com\/comentarios-prioridad-wordpress\/","og_site_name":"Experto en WordPress - Dario BF","article_publisher":"https:\/\/facebook.com\/dariobf","article_published_time":"2019-11-20T16:51:21+00:00","article_modified_time":"2024-09-12T14:34:37+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.dariobf.com\/wp-content\/uploads\/2016\/04\/opengraph_thumb.jpg","type":"image\/jpeg"}],"author":"Dario BF","twitter_card":"summary_large_image","twitter_creator":"@DarioBF","twitter_site":"@DarioBF","twitter_misc":{"Escrito por":"Dario BF","Tiempo de lectura":"2 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dariobf.com\/comentarios-prioridad-wordpress\/#article","isPartOf":{"@id":"https:\/\/www.dariobf.com\/comentarios-prioridad-wordpress\/"},"author":{"name":"Dario BF","@id":"https:\/\/www.dariobf.com\/#\/schema\/person\/b9a59b2eb5a4946e38efd1b89a8158bd"},"headline":"Enganchar los comentarios de WordPress a the_content con prioridad","datePublished":"2019-11-20T16:51:21+00:00","dateModified":"2024-09-12T14:34:37+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dariobf.com\/comentarios-prioridad-wordpress\/"},"wordCount":315,"commentCount":2,"articleSection":["WordPress"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dariobf.com\/comentarios-prioridad-wordpress\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dariobf.com\/comentarios-prioridad-wordpress\/","url":"https:\/\/www.dariobf.com\/comentarios-prioridad-wordpress\/","name":"Enganchar los comentarios de WordPress a the_content con prioridad - DarioBF","isPartOf":{"@id":"https:\/\/www.dariobf.com\/#website"},"datePublished":"2019-11-20T16:51:21+00:00","dateModified":"2024-09-12T14:34:37+00:00","author":{"@id":"https:\/\/www.dariobf.com\/#\/schema\/person\/b9a59b2eb5a4946e38efd1b89a8158bd"},"description":"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...","breadcrumb":{"@id":"https:\/\/www.dariobf.com\/comentarios-prioridad-wordpress\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dariobf.com\/comentarios-prioridad-wordpress\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dariobf.com\/comentarios-prioridad-wordpress\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.dariobf.com\/"},{"@type":"ListItem","position":2,"name":"Enganchar los comentarios de WordPress a the_content con prioridad"}]},{"@type":"WebSite","@id":"https:\/\/www.dariobf.com\/#website","url":"https:\/\/www.dariobf.com\/","name":"Experto en WordPress - Dario BF","description":"Dise\u00f1ador y desarrollador web especializado en WordPress; Front-end HTML5, CSS3 y Javascript.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dariobf.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.dariobf.com\/#\/schema\/person\/b9a59b2eb5a4946e38efd1b89a8158bd","name":"Dario BF","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g","caption":"Dario BF"},"sameAs":["https:\/\/www.dariobf.com"],"url":"https:\/\/www.dariobf.com\/author\/dbalfer\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts\/4821","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/users\/88919"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/comments?post=4821"}],"version-history":[{"count":0,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts\/4821\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/media?parent=4821"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/categories?post=4821"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/tags?post=4821"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":4699,"date":"2019-07-28T22:08:26","date_gmt":"2019-07-28T20:08:26","guid":{"rendered":"https:\/\/www.dariobf.com\/?p=4699"},"modified":"2024-09-12T16:36:17","modified_gmt":"2024-09-12T14:36:17","slug":"crear-endpoint-personalizado-rest-api-wordpress","status":"publish","type":"post","link":"https:\/\/www.dariobf.com\/crear-endpoint-personalizado-rest-api-wordpress\/","title":{"rendered":"Crear endpoint personalizado para la REST API de WordPress"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Si est\u00e1s desarrollando una app (da igual el tipo) y est\u00e1s extrayendo datos de tu instalaci\u00f3n WordPress, sabr\u00e1s que las consultas nativas a la REST API son un poco&#8230; flojitas.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\">No pasa nada, se pueden declarar <strong>custom endpoints<\/strong>, donde extraer la informaci\u00f3n que queramos y, la casualidad, de eso va el art\u00edculo que est\u00e1s leyendo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pong\u00e1monos en situaci\u00f3n<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Crearemos un endpoint que extraiga <strong>exactamente<\/strong> los datos que queremos de la base de nuestra instalaci\u00f3n de WordPress. Concretamente, usar\u00e9 un ejemplo que desarroll\u00e9 para mi amigo <a href=\"https:\/\/convuls.io\/\">Roberto Tu\u00f1\u00f3n<\/a> y su <a href=\"https:\/\/convuls.io\/\">agenda ocio-cultural de Asturias<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El caso es que empez\u00f3 a colaborar con un tercero y necesitaba instalar un widget en el sitio de este para mostrar los pr\u00f3ximos eventos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Todo esto lo ten\u00eda pr\u00e1cticamente desarrollado ya en Convulsio, porque tiene los futuros eventos y pod\u00edamos partir de esa <a href=\"https:\/\/www.dariobf.com\/wp_query-wordpress\/\">WP_Query<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Los puntos clave<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Hay algunas cosas clave que has de entender, para las que dar\u00e9 por hecho que sabes unas nociones m\u00ednimas de desarrollo web con WordPress; ya que en este art\u00edculo s\u00f3lo har\u00e9 incapi\u00e9 en lo que considero imprescindible, a saber:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>rest_api_init<\/strong>: Es el hook al que enganchamos la ruta de nuestro nuevo endpoint<\/li>\n\n\n\n<li><strong>Funci\u00f3n<\/strong> que \u00abimprime\u00bb la informaci\u00f3n en el endpoint que estamos creando<\/li>\n\n\n\n<li><strong>Plugin o widget<\/strong> que consulta ese custom endpoint y hace algo con la informaci\u00f3n, en este caso imprimirla.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Paso 1, preparar el endpoint<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para ello, a\u00f1adimos una acci\u00f3n al hook rest_api_init, que va a registrar la ruta para el nuevo endpoint que vamos a a\u00f1adir:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-code-table shcb-line-numbers\"><span class='shcb-loc'><span><span class=\"hljs-meta\">&lt;?php<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-comment\">\/\/ Registramos una ruta nueva para la rest api<\/span>\n<\/span><\/span><span class='shcb-loc'><span>add_action( <span class=\"hljs-string\">'rest_api_init'<\/span>, <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-params\">()<\/span> <\/span>{\n<\/span><\/span><span class='shcb-loc'><span>\tregister_rest_route( <span class=\"hljs-string\">'convulsio\/v2'<\/span>, <span class=\"hljs-string\">'\/convulsio-events\/'<\/span>,\n<\/span><\/span><span class='shcb-loc'><span>\t\t<span class=\"hljs-keyword\">array<\/span>(\n<\/span><\/span><span class='shcb-loc'><span>\t\t\t<span class=\"hljs-string\">'methods'<\/span> =&gt; <span class=\"hljs-string\">'GET'<\/span>, \n<\/span><\/span><span class='shcb-loc'><span>\t\t\t<span class=\"hljs-string\">'callback'<\/span> =&gt; <span class=\"hljs-string\">'convuls_customquery'<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\t\t)\n<\/span><\/span><span class='shcb-loc'><span>\t);\n<\/span><\/span><span class='shcb-loc'><span>});\n<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Lenguaje del c\u00f3digo:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed has de entender lo siguiente:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>rest_api_init<\/strong> se ejecuta cuando se inicializa la REST API, por eso nos enganchamos a ese hook. <a href=\"https:\/\/www.dariobf.com\/wordpress-hooks\/\">Tutorial aprender m\u00e1s sobre los Hooks de WordPress<\/a><\/li>\n\n\n\n<li><strong>register_rest_route<\/strong> es la funci\u00f3n que se encarga de registrar la ruta (url final) de la REST API para nuestro endpoint, adem\u00e1s le decimos qu\u00e9 funci\u00f3n o callback ha de ejecutar en su llamada; en nuestro caso <strong>convuls_customquery<\/strong><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Paso 2, el contenido del nuevo endpoint<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed vamos a preparar lo que retorna nuestra funci\u00f3n, con todo el contenido que deseemos mostrar:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-13\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-code-table shcb-line-numbers\"><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">convuls_customquery<\/span><span class=\"hljs-params\">()<\/span><\/span>{\n<\/span><\/span><span class='shcb-loc'><span>\t<span class=\"hljs-comment\">\/\/ Set the arguments based on our get parameters<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\t$today = date(<span class=\"hljs-string\">'Ymd'<\/span>,strtotime(<span class=\"hljs-string\">'today'<\/span>));\n<\/span><\/span><span class='shcb-loc'><span>\t$args = <span class=\"hljs-keyword\">array<\/span> (\n<\/span><\/span><span class='shcb-loc'><span>\t\t<span class=\"hljs-string\">'post_type'<\/span>     =&gt; <span class=\"hljs-string\">'evento'<\/span>,\n<\/span><\/span><span class='shcb-loc'><span>\t\t<span class=\"hljs-string\">'posts_per_page'<\/span>    =&gt; <span class=\"hljs-number\">-1<\/span>,\n<\/span><\/span><span class='shcb-loc'><span>\t\t\t\n<\/span><\/span><span class='shcb-loc'><span>\t\t<span class=\"hljs-string\">'meta_key'<\/span>      =&gt; <span class=\"hljs-string\">'fecha'<\/span>,\n<\/span><\/span><span class='shcb-loc'><span>\t\t<span class=\"hljs-string\">'meta_query'<\/span>    =&gt; <span class=\"hljs-keyword\">array<\/span>(\n<\/span><\/span><span class='shcb-loc'><span>\t\t\t<span class=\"hljs-string\">'event_selected'<\/span>    =&gt;<span class=\"hljs-keyword\">array<\/span>(\n<\/span><\/span><span class='shcb-loc'><span>\t\t\t\t<span class=\"hljs-string\">'key'<\/span> =&gt; <span class=\"hljs-string\">'evento_seleccionado'<\/span>,\n<\/span><\/span><span class='shcb-loc'><span>\t\t\t\t<span class=\"hljs-string\">'value'<\/span> =&gt; <span class=\"hljs-string\">'1'<\/span>,\n<\/span><\/span><span class='shcb-loc'><span>\t\t\t\t<span class=\"hljs-string\">'compare'<\/span> =&gt; <span class=\"hljs-string\">'='<\/span>,\n<\/span><\/span><span class='shcb-loc'><span>\t\t\t),\n<\/span><\/span><span class='shcb-loc'><span>\t\t\t<span class=\"hljs-string\">'relation'<\/span> =&gt; <span class=\"hljs-string\">'AND'<\/span>,\n<\/span><\/span><span class='shcb-loc'><span>\t\t\t<span class=\"hljs-string\">'start_date'<\/span>    =&gt;<span class=\"hljs-keyword\">array<\/span>(\n<\/span><\/span><span class='shcb-loc'><span>\t\t\t\t<span class=\"hljs-string\">'key'<\/span>       =&gt; <span class=\"hljs-string\">'fecha'<\/span>,\n<\/span><\/span><span class='shcb-loc'><span>\t\t\t\t<span class=\"hljs-string\">'compare'<\/span>   =&gt; <span class=\"hljs-string\">'&gt;='<\/span>,\n<\/span><\/span><span class='shcb-loc'><span>\t\t\t\t<span class=\"hljs-string\">'value'<\/span>     =&gt; $today,\n<\/span><\/span><span class='shcb-loc'><span>\t\t\t),\n<\/span><\/span><span class='shcb-loc'><span>\t\t\t<span class=\"hljs-string\">'start_time'<\/span>    =&gt; <span class=\"hljs-keyword\">array<\/span>(\n<\/span><\/span><span class='shcb-loc'><span>\t\t\t\t<span class=\"hljs-string\">'key'<\/span>   =&gt; <span class=\"hljs-string\">'hora'<\/span>,\n<\/span><\/span><span class='shcb-loc'><span>\t\t\t\t<span class=\"hljs-string\">'compare'<\/span> =&gt; <span class=\"hljs-string\">'EXISTS'<\/span>,\n<\/span><\/span><span class='shcb-loc'><span>\t\t\t)\n<\/span><\/span><span class='shcb-loc'><span>\t\t),\n<\/span><\/span><span class='shcb-loc'><span>\t\t<span class=\"hljs-string\">'orderby'<\/span>   =&gt; <span class=\"hljs-keyword\">array<\/span>(\n<\/span><\/span><span class='shcb-loc'><span>\t\t\t<span class=\"hljs-string\">'start_date'<\/span>    =&gt; <span class=\"hljs-string\">'ASC'<\/span>,\n<\/span><\/span><span class='shcb-loc'><span>\t\t\t<span class=\"hljs-string\">'start_time'<\/span>    =&gt; <span class=\"hljs-string\">'ASC'<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\t\t)\n<\/span><\/span><span class='shcb-loc'><span>\t);\n<\/span><\/span><span class='shcb-loc'><span>\t<span class=\"hljs-comment\">\/\/ Run a custom query<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\t$meta_query = <span class=\"hljs-keyword\">new<\/span> WP_Query($args);\n<\/span><\/span><span class='shcb-loc'><span>\t<span class=\"hljs-keyword\">if<\/span>($meta_query-&gt;have_posts()) {\n<\/span><\/span><span class='shcb-loc'><span>\t\t<span class=\"hljs-comment\">\/\/Define and empty array<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\t\t$i = <span class=\"hljs-number\">0<\/span>;\n<\/span><\/span><span class='shcb-loc'><span>\t\t$data = <span class=\"hljs-keyword\">array<\/span>();\n<\/span><\/span><span class='shcb-loc'><span>\t\t<span class=\"hljs-comment\">\/\/ Store each post's data in the array<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\t\t<span class=\"hljs-keyword\">while<\/span>($meta_query-&gt;have_posts()) {\n<\/span><\/span><span class='shcb-loc'><span>\t\t\t$meta_query-&gt;the_post();\n<\/span><\/span><span class='shcb-loc'><span>\t\t\t$data&#91;$i]&#91;<span class=\"hljs-string\">'title'<\/span>]          =   get_the_title();\n<\/span><\/span><span class='shcb-loc'><span>\t\t\t$data&#91;$i]&#91;<span class=\"hljs-string\">'excerpt'<\/span>]        =   get_the_excerpt();\n<\/span><\/span><span class='shcb-loc'><span>\t\t\t$data&#91;$i]&#91;<span class=\"hljs-string\">'type'<\/span>]           =   get_the_terms(get_the_ID(), <span class=\"hljs-string\">'tipo-de-evento'<\/span>);\n<\/span><\/span><span class='shcb-loc'><span>\t\t\t$data&#91;$i]&#91;<span class=\"hljs-string\">'date'<\/span>]           =   get_field(<span class=\"hljs-string\">'fecha'<\/span>, get_the_ID());\n<\/span><\/span><span class='shcb-loc'><span>\t\t\t$data&#91;$i]&#91;<span class=\"hljs-string\">'time'<\/span>]           =   get_field(<span class=\"hljs-string\">'hora'<\/span>, get_the_ID());\n<\/span><\/span><span class='shcb-loc'><span>\t\t\t$data&#91;$i]&#91;<span class=\"hljs-string\">'thumbnail'<\/span>]      =   get_the_post_thumbnail_url(get_the_ID(), <span class=\"hljs-string\">'thumbnail'<\/span>);\n<\/span><\/span><span class='shcb-loc'><span>\t\t\t$data&#91;$i]&#91;<span class=\"hljs-string\">'link'<\/span>]           =   get_the_permalink();\n<\/span><\/span><span class='shcb-loc'><span>\t\t\t$i++;\n<\/span><\/span><span class='shcb-loc'><span>\t\t}\n<\/span><\/span><span class='shcb-loc'><span>\t\t<span class=\"hljs-comment\">\/\/ Return the data<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\t\t<span class=\"hljs-keyword\">return<\/span> $data;\n<\/span><\/span><span class='shcb-loc'><span>\t}\n<\/span><\/span><span class='shcb-loc'><span>}\n<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-13\"><span class=\"shcb-language__label\">Lenguaje del c\u00f3digo:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">El resumen de todo esto es un <a href=\"https:\/\/www.dariobf.com\/wp_query-wordpress\/\">WP_Query<\/a> que extrae la informaci\u00f3n que queremos, en este caso consultamos s\u00f3lo los eventos posteriores al d\u00eda de hoy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Despu\u00e9s de configurar el WP_Query, hacemos las t\u00edpicas comprobaciones de que existen contenidos y para cada resultado, inclu\u00edmos los valores en un array, tal que $data[$i][VALOR], donde $i corresponde con cada art\u00edculo y el valor ser\u00e1 lo que queramos sacar en ese endpoint.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed podemos sacar toda la informaci\u00f3n que queramos, de manera que obtendremos algo as\u00ed:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"686\" height=\"414\" src=\"https:\/\/www.dariobf.com\/wp-content\/uploads\/2019\/07\/Captura-de-pantalla-2019-07-28-a-las-22.05.14.png\" alt=\"\" class=\"wp-image-4701\" srcset=\"https:\/\/www.dariobf.com\/wp-content\/uploads\/2019\/07\/Captura-de-pantalla-2019-07-28-a-las-22.05.14.png 686w, https:\/\/www.dariobf.com\/wp-content\/uploads\/2019\/07\/Captura-de-pantalla-2019-07-28-a-las-22.05.14-300x181.png 300w, https:\/\/www.dariobf.com\/wp-content\/uploads\/2019\/07\/Captura-de-pantalla-2019-07-28-a-las-22.05.14-400x241.png 400w, https:\/\/www.dariobf.com\/wp-content\/uploads\/2019\/07\/Captura-de-pantalla-2019-07-28-a-las-22.05.14-100x60.png 100w, https:\/\/www.dariobf.com\/wp-content\/uploads\/2019\/07\/Captura-de-pantalla-2019-07-28-a-las-22.05.14-600x362.png 600w\" sizes=\"auto, (max-width: 686px) 100vw, 686px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Paso 3, crear el plugin o widget para imprimir<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">En este punto, tenemos el endpoint listo, mostrando la informaci\u00f3n que queremos en formato JSON, por lo que s\u00f3lo tendremos que crear un plugin o widget que lea el JSON de ese endpoint e imprimirlo o procesarlo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En el futuro escribir\u00e9 un art\u00edculo sobre c\u00f3mo hacer esto, ya que no tiene mucho que ver con la REST API, sino con crear un plugin o widget.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si te ha gustado, ya sabes lo que tienes que hacer.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Si est\u00e1s desarrollando una app (da igual el tipo) y est\u00e1s extrayendo datos de tu instalaci\u00f3n WordPress, sabr\u00e1s que las consultas nativas a la REST API son un poco&#8230; flojitas.<\/p>\n","protected":false},"author":88919,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"episode_type":"","audio_file":"","podmotor_file_id":"","podmotor_episode_id":"","cover_image":"","cover_image_id":"","duration":"","filesize":"","filesize_raw":"","date_recorded":"","explicit":"","block":"","itunes_episode_number":"","itunes_title":"","itunes_season_number":"","itunes_episode_type":"","footnotes":""},"categories":[284],"tags":[],"class_list":["post-4699","post","type-post","status-publish","format-standard","hentry","category-wordpress"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Crear endpoint personalizado para la REST API de WordPress - DarioBF<\/title>\n<meta name=\"description\" content=\"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dariobf.com\/crear-endpoint-personalizado-rest-api-wordpress\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Crear endpoint personalizado para la REST API de WordPress - DarioBF\" \/>\n<meta property=\"og:description\" content=\"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dariobf.com\/crear-endpoint-personalizado-rest-api-wordpress\/\" \/>\n<meta property=\"og:site_name\" content=\"Experto en WordPress - Dario BF\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/dariobf\" \/>\n<meta property=\"article:published_time\" content=\"2019-07-28T20:08:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-12T14:36:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dariobf.com\/wp-content\/uploads\/2019\/07\/Captura-de-pantalla-2019-07-28-a-las-22.05.14.png\" \/>\n<meta name=\"author\" content=\"Dario BF\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DarioBF\" \/>\n<meta name=\"twitter:site\" content=\"@DarioBF\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dario BF\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/crear-endpoint-personalizado-rest-api-wordpress\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/crear-endpoint-personalizado-rest-api-wordpress\\\/\"},\"author\":{\"name\":\"Dario BF\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#\\\/schema\\\/person\\\/b9a59b2eb5a4946e38efd1b89a8158bd\"},\"headline\":\"Crear endpoint personalizado para la REST API de WordPress\",\"datePublished\":\"2019-07-28T20:08:26+00:00\",\"dateModified\":\"2024-09-12T14:36:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/crear-endpoint-personalizado-rest-api-wordpress\\\/\"},\"wordCount\":568,\"commentCount\":6,\"image\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/crear-endpoint-personalizado-rest-api-wordpress\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dariobf.com\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/Captura-de-pantalla-2019-07-28-a-las-22.05.14.png\",\"articleSection\":[\"WordPress\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dariobf.com\\\/crear-endpoint-personalizado-rest-api-wordpress\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/crear-endpoint-personalizado-rest-api-wordpress\\\/\",\"url\":\"https:\\\/\\\/www.dariobf.com\\\/crear-endpoint-personalizado-rest-api-wordpress\\\/\",\"name\":\"Crear endpoint personalizado para la REST API de WordPress - DarioBF\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/crear-endpoint-personalizado-rest-api-wordpress\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/crear-endpoint-personalizado-rest-api-wordpress\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dariobf.com\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/Captura-de-pantalla-2019-07-28-a-las-22.05.14.png\",\"datePublished\":\"2019-07-28T20:08:26+00:00\",\"dateModified\":\"2024-09-12T14:36:17+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#\\\/schema\\\/person\\\/b9a59b2eb5a4946e38efd1b89a8158bd\"},\"description\":\"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/crear-endpoint-personalizado-rest-api-wordpress\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dariobf.com\\\/crear-endpoint-personalizado-rest-api-wordpress\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/crear-endpoint-personalizado-rest-api-wordpress\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.dariobf.com\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/Captura-de-pantalla-2019-07-28-a-las-22.05.14.png\",\"contentUrl\":\"https:\\\/\\\/www.dariobf.com\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/Captura-de-pantalla-2019-07-28-a-las-22.05.14.png\",\"width\":686,\"height\":414},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/crear-endpoint-personalizado-rest-api-wordpress\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/www.dariobf.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Crear endpoint personalizado para la REST API de WordPress\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#website\",\"url\":\"https:\\\/\\\/www.dariobf.com\\\/\",\"name\":\"Experto en WordPress - Dario BF\",\"description\":\"Dise\u00f1ador y desarrollador web especializado en WordPress; Front-end HTML5, CSS3 y Javascript.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dariobf.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#\\\/schema\\\/person\\\/b9a59b2eb5a4946e38efd1b89a8158bd\",\"name\":\"Dario BF\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g\",\"caption\":\"Dario BF\"},\"sameAs\":[\"https:\\\/\\\/www.dariobf.com\"],\"url\":\"https:\\\/\\\/www.dariobf.com\\\/author\\\/dbalfer\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Crear endpoint personalizado para la REST API de WordPress - DarioBF","description":"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dariobf.com\/crear-endpoint-personalizado-rest-api-wordpress\/","og_locale":"es_ES","og_type":"article","og_title":"Crear endpoint personalizado para la REST API de WordPress - DarioBF","og_description":"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...","og_url":"https:\/\/www.dariobf.com\/crear-endpoint-personalizado-rest-api-wordpress\/","og_site_name":"Experto en WordPress - Dario BF","article_publisher":"https:\/\/facebook.com\/dariobf","article_published_time":"2019-07-28T20:08:26+00:00","article_modified_time":"2024-09-12T14:36:17+00:00","og_image":[{"url":"https:\/\/www.dariobf.com\/wp-content\/uploads\/2019\/07\/Captura-de-pantalla-2019-07-28-a-las-22.05.14.png","type":"","width":"","height":""}],"author":"Dario BF","twitter_card":"summary_large_image","twitter_creator":"@DarioBF","twitter_site":"@DarioBF","twitter_misc":{"Escrito por":"Dario BF","Tiempo de lectura":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dariobf.com\/crear-endpoint-personalizado-rest-api-wordpress\/#article","isPartOf":{"@id":"https:\/\/www.dariobf.com\/crear-endpoint-personalizado-rest-api-wordpress\/"},"author":{"name":"Dario BF","@id":"https:\/\/www.dariobf.com\/#\/schema\/person\/b9a59b2eb5a4946e38efd1b89a8158bd"},"headline":"Crear endpoint personalizado para la REST API de WordPress","datePublished":"2019-07-28T20:08:26+00:00","dateModified":"2024-09-12T14:36:17+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dariobf.com\/crear-endpoint-personalizado-rest-api-wordpress\/"},"wordCount":568,"commentCount":6,"image":{"@id":"https:\/\/www.dariobf.com\/crear-endpoint-personalizado-rest-api-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dariobf.com\/wp-content\/uploads\/2019\/07\/Captura-de-pantalla-2019-07-28-a-las-22.05.14.png","articleSection":["WordPress"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dariobf.com\/crear-endpoint-personalizado-rest-api-wordpress\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dariobf.com\/crear-endpoint-personalizado-rest-api-wordpress\/","url":"https:\/\/www.dariobf.com\/crear-endpoint-personalizado-rest-api-wordpress\/","name":"Crear endpoint personalizado para la REST API de WordPress - DarioBF","isPartOf":{"@id":"https:\/\/www.dariobf.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dariobf.com\/crear-endpoint-personalizado-rest-api-wordpress\/#primaryimage"},"image":{"@id":"https:\/\/www.dariobf.com\/crear-endpoint-personalizado-rest-api-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dariobf.com\/wp-content\/uploads\/2019\/07\/Captura-de-pantalla-2019-07-28-a-las-22.05.14.png","datePublished":"2019-07-28T20:08:26+00:00","dateModified":"2024-09-12T14:36:17+00:00","author":{"@id":"https:\/\/www.dariobf.com\/#\/schema\/person\/b9a59b2eb5a4946e38efd1b89a8158bd"},"description":"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...","breadcrumb":{"@id":"https:\/\/www.dariobf.com\/crear-endpoint-personalizado-rest-api-wordpress\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dariobf.com\/crear-endpoint-personalizado-rest-api-wordpress\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.dariobf.com\/crear-endpoint-personalizado-rest-api-wordpress\/#primaryimage","url":"https:\/\/www.dariobf.com\/wp-content\/uploads\/2019\/07\/Captura-de-pantalla-2019-07-28-a-las-22.05.14.png","contentUrl":"https:\/\/www.dariobf.com\/wp-content\/uploads\/2019\/07\/Captura-de-pantalla-2019-07-28-a-las-22.05.14.png","width":686,"height":414},{"@type":"BreadcrumbList","@id":"https:\/\/www.dariobf.com\/crear-endpoint-personalizado-rest-api-wordpress\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.dariobf.com\/"},{"@type":"ListItem","position":2,"name":"Crear endpoint personalizado para la REST API de WordPress"}]},{"@type":"WebSite","@id":"https:\/\/www.dariobf.com\/#website","url":"https:\/\/www.dariobf.com\/","name":"Experto en WordPress - Dario BF","description":"Dise\u00f1ador y desarrollador web especializado en WordPress; Front-end HTML5, CSS3 y Javascript.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dariobf.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.dariobf.com\/#\/schema\/person\/b9a59b2eb5a4946e38efd1b89a8158bd","name":"Dario BF","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g","caption":"Dario BF"},"sameAs":["https:\/\/www.dariobf.com"],"url":"https:\/\/www.dariobf.com\/author\/dbalfer\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts\/4699","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/users\/88919"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/comments?post=4699"}],"version-history":[{"count":0,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts\/4699\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/media?parent=4699"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/categories?post=4699"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/tags?post=4699"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":4593,"date":"2019-05-21T15:47:49","date_gmt":"2019-05-21T13:47:49","guid":{"rendered":"https:\/\/www.dariobf.com\/?p=4593"},"modified":"2024-09-12T16:39:25","modified_gmt":"2024-09-12T14:39:25","slug":"wordpress-atemporal","status":"publish","type":"post","link":"https:\/\/www.dariobf.com\/wordpress-atemporal\/","title":{"rendered":"Funci\u00f3n para hacer tu WordPress atemporal"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Si tu contenido es atemporal, como por ejemplo fotograf\u00edas, viv\u00e9cdotas o -en definitiva- cualquier material no perecedero en el tiempo, quiz\u00e1 debas hacer tu WordPress atemporal.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Posibles soluciones<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Modificar el tema o theme para eliminar toda llamada a las fechas de los contenidos. Este m\u00e9todo es poco recomendable, sobretodo cuando tienes un theme comercial o de terceros, donde tendr\u00edas que hacer un child-theme con la inversi\u00f3n de tiempo que conlleva (Te interesar\u00e1 el m\u00e9todo 4)<\/li>\n\n\n\n<li>Utilizar un plugin; no puedo recomendarte ninguno pues no los he probado y s\u00f3lo recomiendo cosas que se que funcionan correctamente. <a href=\"https:\/\/es.wordpress.org\/plugins\/search\/date+remove\/\">Hay varios en el repositorio<\/a>.<\/li>\n\n\n\n<li>Utilizar Javascript. Personalmente, considero que es la menos recomendada, es una locura modificar el DOM para una tarea tan sencilla como vamos a ver en el m\u00e9todo 4<\/li>\n\n\n\n<li>Hacer una funci\u00f3n que podemos insertar en nuestro functions.php o un plugin (mejor esta opci\u00f3n, sin duda) que elimine los retornos de los <a href=\"https:\/\/www.dariobf.com\/wordpress-hooks\/\">hooks<\/a> de fechas. No te preocupes, a continuaci\u00f3n te explico c\u00f3mo hacerlo.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">La funci\u00f3n que elimina las fechas de los art\u00edculos<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-14\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-code-table shcb-line-numbers\"><span class='shcb-loc'><span><span class=\"hljs-comment\">\/** Funci\u00f3n que elimina todo rastro de fechas en los art\u00edculos *\/<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">bf_remove_dates<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\n<\/span><\/span><span class='shcb-loc'><span>  add_filter(<span class=\"hljs-string\">'the_time'<\/span>, <span class=\"hljs-string\">'__return_false'<\/span>);\n<\/span><\/span><span class='shcb-loc'><span>  add_filter(<span class=\"hljs-string\">'get_the_time'<\/span>, <span class=\"hljs-string\">'__return_false'<\/span>);\n<\/span><\/span><span class='shcb-loc'><span>  add_filter(<span class=\"hljs-string\">'the_modified_time'<\/span>, <span class=\"hljs-string\">'__return_false'<\/span>);\n<\/span><\/span><span class='shcb-loc'><span>  add_filter(<span class=\"hljs-string\">'get_the_modified_time'<\/span>, <span class=\"hljs-string\">'__return_false'<\/span>);\n<\/span><\/span><span class='shcb-loc'><span>  add_filter(<span class=\"hljs-string\">'the_date'<\/span>, <span class=\"hljs-string\">'__return_false'<\/span>);\n<\/span><\/span><span class='shcb-loc'><span>  add_filter(<span class=\"hljs-string\">'get_the_date'<\/span>, <span class=\"hljs-string\">'__return_false'<\/span>);\n<\/span><\/span><span class='shcb-loc'><span>  add_filter(<span class=\"hljs-string\">'the_modified_date'<\/span>, <span class=\"hljs-string\">'__return_false'<\/span>);\n<\/span><\/span><span class='shcb-loc'><span>  add_filter(<span class=\"hljs-string\">'get_the_modified_date'<\/span>, <span class=\"hljs-string\">'__return_false'<\/span>);\n<\/span><\/span><span class='shcb-loc'><span>  add_filter(<span class=\"hljs-string\">'get_comment_date'<\/span>, <span class=\"hljs-string\">'__return_false'<\/span>);\n<\/span><\/span><span class='shcb-loc'><span>  add_filter(<span class=\"hljs-string\">'get_comment_time'<\/span>, <span class=\"hljs-string\">'__return_false'<\/span>);\n<\/span><\/span><span class='shcb-loc'><span>}\n<\/span><\/span><span class='shcb-loc'><span>add_action(<span class=\"hljs-string\">'loop_start'<\/span>, <span class=\"hljs-string\">'bf_remove_dates'<\/span>);\n<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-14\"><span class=\"shcb-language__label\">Lenguaje del c\u00f3digo:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Como puedes ver, a\u00f1adimos la llamada a la funci\u00f3n en el action <em>loop_start<\/em>, que se ejecuta despu\u00e9s de imprimir estilos y scripts en el front.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si vas a quitar las fechas sin m\u00e1s condiciones, te funcionar\u00e1 perfectamente ese ejemplo, pero si quieres a\u00f1adir alg\u00fan tipo de condici\u00f3n (como, por ejemplo, que s\u00f3lo quite las fechas de cierto post type), lo mejor es que enganches esta funci\u00f3n a un filtro m\u00e1s adecuado como el <em>wp<\/em>, as\u00ed aseguras el tiro (<a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Action_Reference#Actions_Run_During_a_Typical_Request\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (abre en una nueva pesta\u00f1a)\">ver orden de ejecuci\u00f3n de hooks aqu\u00ed<\/a>). Para que lo entiendas, el hook wp se ejecuta antes de imprimir cualquier HTML en el documento, por lo que nos aseguramos que nuestras condiciones se aplican tal y como queremos (gracias <a rel=\"noreferrer noopener\" aria-label=\"Pablo (abre en una nueva pesta\u00f1a)\" href=\"https:\/\/desarrollowp.com\/\" target=\"_blank\">Pablo<\/a> por la puntualizaci\u00f3n)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para ello, sustituye la \u00faltima l\u00ednea del c\u00f3digo anterior (add_action(&#8216;loop_start&#8217;&#8230;) por esta otra:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-15\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-code-table shcb-line-numbers\"><span class='shcb-loc'><span>add_action(<span class=\"hljs-string\">'wp'<\/span>, <span class=\"hljs-string\">'bf_remove_dates'<\/span>);\n<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-15\"><span class=\"shcb-language__label\">Lenguaje del c\u00f3digo:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Una vez cambiado esto, podr\u00e1s a\u00f1adir todos los add_filter que quieras dentro de tu condici\u00f3n. Como ejemplo final, as\u00ed ser\u00eda para eliminar la fecha SOLO de los single de un <a href=\"https:\/\/www.dariobf.com\/custom-post-types-wordpress\/\">custom post type<\/a> ficticio <em>Libros<\/em>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-16\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-code-table shcb-line-numbers\"><span class='shcb-loc'><span><span class=\"hljs-comment\">\/** Funci\u00f3n que elimina todo rastro de fechas en los art\u00edculos *\/<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">bf_remove_dates<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\n<\/span><\/span><span class='shcb-loc'><span>  <span class=\"hljs-keyword\">if<\/span>( is_singular(<span class=\"hljs-string\">'libros'<\/span>) ){\n<\/span><\/span><span class='shcb-loc'><span>    add_filter(<span class=\"hljs-string\">'the_time'<\/span>, <span class=\"hljs-string\">'__return_false'<\/span>);\n<\/span><\/span><span class='shcb-loc'><span>    add_filter(<span class=\"hljs-string\">'get_the_time'<\/span>, <span class=\"hljs-string\">'__return_false'<\/span>);\n<\/span><\/span><span class='shcb-loc'><span>    add_filter(<span class=\"hljs-string\">'the_modified_time'<\/span>, <span class=\"hljs-string\">'__return_false'<\/span>);\n<\/span><\/span><span class='shcb-loc'><span>    add_filter(<span class=\"hljs-string\">'get_the_modified_time'<\/span>, <span class=\"hljs-string\">'__return_false'<\/span>);\n<\/span><\/span><span class='shcb-loc'><span>    add_filter(<span class=\"hljs-string\">'the_date'<\/span>, <span class=\"hljs-string\">'__return_false'<\/span>);\n<\/span><\/span><span class='shcb-loc'><span>    add_filter(<span class=\"hljs-string\">'get_the_date'<\/span>, <span class=\"hljs-string\">'__return_false'<\/span>);\n<\/span><\/span><span class='shcb-loc'><span>    add_filter(<span class=\"hljs-string\">'the_modified_date'<\/span>, <span class=\"hljs-string\">'__return_false'<\/span>);\n<\/span><\/span><span class='shcb-loc'><span>    add_filter(<span class=\"hljs-string\">'get_the_modified_date'<\/span>, <span class=\"hljs-string\">'__return_false'<\/span>);\n<\/span><\/span><span class='shcb-loc'><span>    add_filter(<span class=\"hljs-string\">'get_comment_date'<\/span>, <span class=\"hljs-string\">'__return_false'<\/span>);\n<\/span><\/span><span class='shcb-loc'><span>    add_filter(<span class=\"hljs-string\">'get_comment_time'<\/span>, <span class=\"hljs-string\">'__return_false'<\/span>);\n<\/span><\/span><span class='shcb-loc'><span>  }\n<\/span><\/span><span class='shcb-loc'><span>}\n<\/span><\/span><span class='shcb-loc'><span>add_action(<span class=\"hljs-string\">'wp'<\/span>, <span class=\"hljs-string\">'bf_remove_dates'<\/span>);\n<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-16\"><span class=\"shcb-language__label\">Lenguaje del c\u00f3digo:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">He inspirado esta entrada en este <a href=\"http:\/\/www.alltechflix.com\/remove-date-wordpress\/\">art\u00edculo de Tech Flix<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Espero que te sirva en tus proyectos, \u00a1si te ha gustado el art\u00edculo ya sabes lo que hacer!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Si tu contenido es atemporal, como por ejemplo fotograf\u00edas, viv\u00e9cdotas o -en definitiva- cualquier material no perecedero en el tiempo, quiz\u00e1 debas hacer tu WordPress atemporal. Posibles soluciones La funci\u00f3n que elimina las fechas de los art\u00edculos Como puedes ver, a\u00f1adimos la llamada a la funci\u00f3n en el action loop_start, que se ejecuta despu\u00e9s de [&hellip;]<\/p>\n","protected":false},"author":88919,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"episode_type":"","audio_file":"","podmotor_file_id":"","podmotor_episode_id":"","cover_image":"","cover_image_id":"","duration":"","filesize":"","filesize_raw":"","date_recorded":"","explicit":"","block":"","itunes_episode_number":"","itunes_title":"","itunes_season_number":"","itunes_episode_type":"","footnotes":""},"categories":[284],"tags":[],"class_list":["post-4593","post","type-post","status-publish","format-standard","hentry","category-wordpress"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Funci\u00f3n para hacer tu WordPress atemporal - DarioBF<\/title>\n<meta name=\"description\" content=\"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dariobf.com\/wordpress-atemporal\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Funci\u00f3n para hacer tu WordPress atemporal - DarioBF\" \/>\n<meta property=\"og:description\" content=\"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dariobf.com\/wordpress-atemporal\/\" \/>\n<meta property=\"og:site_name\" content=\"Experto en WordPress - Dario BF\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/dariobf\" \/>\n<meta property=\"article:published_time\" content=\"2019-05-21T13:47:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-12T14:39:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dariobf.com\/wp-content\/uploads\/2016\/04\/opengraph_thumb.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Dario BF\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DarioBF\" \/>\n<meta name=\"twitter:site\" content=\"@DarioBF\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dario BF\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/wordpress-atemporal\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/wordpress-atemporal\\\/\"},\"author\":{\"name\":\"Dario BF\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#\\\/schema\\\/person\\\/b9a59b2eb5a4946e38efd1b89a8158bd\"},\"headline\":\"Funci\u00f3n para hacer tu WordPress atemporal\",\"datePublished\":\"2019-05-21T13:47:49+00:00\",\"dateModified\":\"2024-09-12T14:39:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/wordpress-atemporal\\\/\"},\"wordCount\":415,\"commentCount\":0,\"articleSection\":[\"WordPress\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dariobf.com\\\/wordpress-atemporal\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/wordpress-atemporal\\\/\",\"url\":\"https:\\\/\\\/www.dariobf.com\\\/wordpress-atemporal\\\/\",\"name\":\"Funci\u00f3n para hacer tu WordPress atemporal - DarioBF\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#website\"},\"datePublished\":\"2019-05-21T13:47:49+00:00\",\"dateModified\":\"2024-09-12T14:39:25+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#\\\/schema\\\/person\\\/b9a59b2eb5a4946e38efd1b89a8158bd\"},\"description\":\"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/wordpress-atemporal\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dariobf.com\\\/wordpress-atemporal\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/wordpress-atemporal\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/www.dariobf.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Funci\u00f3n para hacer tu WordPress atemporal\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#website\",\"url\":\"https:\\\/\\\/www.dariobf.com\\\/\",\"name\":\"Experto en WordPress - Dario BF\",\"description\":\"Dise\u00f1ador y desarrollador web especializado en WordPress; Front-end HTML5, CSS3 y Javascript.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dariobf.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#\\\/schema\\\/person\\\/b9a59b2eb5a4946e38efd1b89a8158bd\",\"name\":\"Dario BF\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g\",\"caption\":\"Dario BF\"},\"sameAs\":[\"https:\\\/\\\/www.dariobf.com\"],\"url\":\"https:\\\/\\\/www.dariobf.com\\\/author\\\/dbalfer\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Funci\u00f3n para hacer tu WordPress atemporal - DarioBF","description":"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dariobf.com\/wordpress-atemporal\/","og_locale":"es_ES","og_type":"article","og_title":"Funci\u00f3n para hacer tu WordPress atemporal - DarioBF","og_description":"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...","og_url":"https:\/\/www.dariobf.com\/wordpress-atemporal\/","og_site_name":"Experto en WordPress - Dario BF","article_publisher":"https:\/\/facebook.com\/dariobf","article_published_time":"2019-05-21T13:47:49+00:00","article_modified_time":"2024-09-12T14:39:25+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.dariobf.com\/wp-content\/uploads\/2016\/04\/opengraph_thumb.jpg","type":"image\/jpeg"}],"author":"Dario BF","twitter_card":"summary_large_image","twitter_creator":"@DarioBF","twitter_site":"@DarioBF","twitter_misc":{"Escrito por":"Dario BF","Tiempo de lectura":"2 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dariobf.com\/wordpress-atemporal\/#article","isPartOf":{"@id":"https:\/\/www.dariobf.com\/wordpress-atemporal\/"},"author":{"name":"Dario BF","@id":"https:\/\/www.dariobf.com\/#\/schema\/person\/b9a59b2eb5a4946e38efd1b89a8158bd"},"headline":"Funci\u00f3n para hacer tu WordPress atemporal","datePublished":"2019-05-21T13:47:49+00:00","dateModified":"2024-09-12T14:39:25+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dariobf.com\/wordpress-atemporal\/"},"wordCount":415,"commentCount":0,"articleSection":["WordPress"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dariobf.com\/wordpress-atemporal\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dariobf.com\/wordpress-atemporal\/","url":"https:\/\/www.dariobf.com\/wordpress-atemporal\/","name":"Funci\u00f3n para hacer tu WordPress atemporal - DarioBF","isPartOf":{"@id":"https:\/\/www.dariobf.com\/#website"},"datePublished":"2019-05-21T13:47:49+00:00","dateModified":"2024-09-12T14:39:25+00:00","author":{"@id":"https:\/\/www.dariobf.com\/#\/schema\/person\/b9a59b2eb5a4946e38efd1b89a8158bd"},"description":"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...","breadcrumb":{"@id":"https:\/\/www.dariobf.com\/wordpress-atemporal\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dariobf.com\/wordpress-atemporal\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dariobf.com\/wordpress-atemporal\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.dariobf.com\/"},{"@type":"ListItem","position":2,"name":"Funci\u00f3n para hacer tu WordPress atemporal"}]},{"@type":"WebSite","@id":"https:\/\/www.dariobf.com\/#website","url":"https:\/\/www.dariobf.com\/","name":"Experto en WordPress - Dario BF","description":"Dise\u00f1ador y desarrollador web especializado en WordPress; Front-end HTML5, CSS3 y Javascript.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dariobf.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.dariobf.com\/#\/schema\/person\/b9a59b2eb5a4946e38efd1b89a8158bd","name":"Dario BF","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g","caption":"Dario BF"},"sameAs":["https:\/\/www.dariobf.com"],"url":"https:\/\/www.dariobf.com\/author\/dbalfer\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts\/4593","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/users\/88919"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/comments?post=4593"}],"version-history":[{"count":0,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts\/4593\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/media?parent=4593"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/categories?post=4593"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/tags?post=4593"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":3363,"date":"2018-08-24T12:44:10","date_gmt":"2018-08-24T10:44:10","guid":{"rendered":"https:\/\/www.dariobf.com\/?p=3363"},"modified":"2024-09-12T16:45:42","modified_gmt":"2024-09-12T14:45:42","slug":"evitar-anadir-terminos-taxonomia-rol-usuario","status":"publish","type":"post","link":"https:\/\/www.dariobf.com\/evitar-anadir-terminos-taxonomia-rol-usuario\/","title":{"rendered":"Limitar la creaci\u00f3n de nuevos t\u00e9rminos de taxonom\u00eda por rol de usuario en WordPress"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">La gesti\u00f3n de contenido en WordPress es extremadamente flexible, y una de las razones de su popularidad es su capacidad para ser personalizada seg\u00fan las necesidades del proyecto. Uno de los elementos clave en esta flexibilidad es el uso de taxonom\u00edas, las cuales permiten clasificar el contenido de forma personalizada, adem\u00e1s de las taxonom\u00edas predeterminadas como \u00abcategor\u00edas\u00bb y \u00abetiquetas\u00bb.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sin embargo, en muchos proyectos, es posible que queramos restringir qui\u00e9n puede modificar o a\u00f1adir t\u00e9rminos a ciertas taxonom\u00edas. Es com\u00fan que al gestionar un sitio con varios roles de usuario, como administradores, editores, autores, colaboradores y suscriptores, tengamos que limitar ciertos permisos seg\u00fan las necesidades del sitio. En este caso espec\u00edfico, puede surgir la necesidad de evitar que ciertos usuarios, como los autores o colaboradores, creen nuevos t\u00e9rminos dentro de una taxonom\u00eda espec\u00edfica.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u00bfPor qu\u00e9 limitar la creaci\u00f3n de nuevos t\u00e9rminos de taxonom\u00eda?<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Si bien WordPress facilita la creaci\u00f3n de contenido mediante el uso de categor\u00edas y etiquetas, en algunos casos, la creaci\u00f3n indiscriminada de nuevos t\u00e9rminos puede resultar en un problema. Un ejemplo com\u00fan es cuando diferentes usuarios empiezan a crear etiquetas duplicadas, incorrectamente nombradas o innecesarias, lo que termina desorganizando el sitio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo, si trabajas en un sitio web con una estructura de contenido muy clara y definida, como un peri\u00f3dico digital, podr\u00edas querer mantener un control m\u00e1s estricto sobre las categor\u00edas y etiquetas para evitar que los autores creen t\u00e9rminos que rompan la coherencia del contenido.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed es donde entra en juego el snippet que veremos a continuaci\u00f3n, el cual te permitir\u00e1 limitar qui\u00e9n puede o no a\u00f1adir nuevos t\u00e9rminos de taxonom\u00eda seg\u00fan su rol de usuario.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Controlar la creaci\u00f3n de t\u00e9rminos por roles de usuario<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El siguiente c\u00f3digo es un ejemplo sencillo que utiliza el hook <code>pre_insert_term<\/code> de WordPress para bloquear la creaci\u00f3n de nuevos t\u00e9rminos en una taxonom\u00eda espec\u00edfica, dependiendo del rol del usuario.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-17\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-code-table shcb-line-numbers\"><span class='shcb-loc'><span>add_action( <span class=\"hljs-string\">'pre_insert_term'<\/span>, <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-params\">( $term, $taxonomy )<\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><\/span>{\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-keyword\">return<\/span> ( <span class=\"hljs-string\">'tu_taxonomia'<\/span> === $taxonomy &amp;&amp; !current_user_can( <span class=\"hljs-string\">'manage_options'<\/span> ) )\n<\/span><\/span><span class='shcb-loc'><span>        ? <span class=\"hljs-keyword\">new<\/span> WP_Error( <span class=\"hljs-string\">'term_addition_blocked'<\/span>, __( <span class=\"hljs-string\">'No puedes a\u00f1adir t\u00e9rminos a esta taxonom\u00eda.'<\/span> ) )\n<\/span><\/span><span class='shcb-loc'><span>        : $term;\n<\/span><\/span><span class='shcb-loc'><span>}, <span class=\"hljs-number\">0<\/span>, <span class=\"hljs-number\">2<\/span> );\n<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-17\"><span class=\"shcb-language__label\">Lenguaje del c\u00f3digo:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Explicaci\u00f3n del c\u00f3digo<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Hook pre_insert_term:<\/strong> Este hook se dispara justo antes de que un t\u00e9rmino sea insertado en la base de datos, lo que nos permite interceptar el proceso y realizar nuestras comprobaciones.<\/li>\n\n\n\n<li><strong>Funci\u00f3n an\u00f3nima:<\/strong> La funci\u00f3n an\u00f3nima dentro del hook eval\u00faa dos cosas: la taxonom\u00eda en la que se est\u00e1 intentando a\u00f1adir el t\u00e9rmino y el rol del usuario que est\u00e1 realizando la acci\u00f3n. Si ambas condiciones coinciden, entonces bloquea la inserci\u00f3n del t\u00e9rmino.<\/li>\n\n\n\n<li><strong>Condici\u00f3n de taxonom\u00eda:<\/strong> La primera parte de la condici\u00f3n <code>('tu_taxonomia' === $taxonomy)<\/code> verifica si la taxonom\u00eda en cuesti\u00f3n es la que deseamos restringir. Debes reemplazar <code>'tu_taxonomia'<\/code> con el slug de la taxonom\u00eda que quieres controlar. Por ejemplo, si deseas restringir las etiquetas (tags), utilizar\u00edas <code>'post_tag'<\/code>.<\/li>\n\n\n\n<li><strong>Comprobaci\u00f3n del rol de usuario:<\/strong> La segunda parte, <code>!current_user_can( 'manage_options' )<\/code>, se asegura de que s\u00f3lo los usuarios con ciertos privilegios puedan a\u00f1adir nuevos t\u00e9rminos. En este caso, est\u00e1 comprobando si el usuario tiene la capacidad de <code>manage_options<\/code>, lo que generalmente est\u00e1 reservado para administradores.<\/li>\n\n\n\n<li><strong>Bloqueo de la inserci\u00f3n:<\/strong> Si ambas condiciones se cumplen, la funci\u00f3n devuelve un error de WordPress (<code>WP_Error<\/code>), lo que bloquea la inserci\u00f3n del nuevo t\u00e9rmino y muestra un mensaje de error personalizado: \u00abNo puedes a\u00f1adir t\u00e9rminos a esta taxonom\u00eda.\u00bb<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Personalizar el c\u00f3digo<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Este script es muy flexible, ya que puedes adaptarlo seg\u00fan tus necesidades. A continuaci\u00f3n, algunas maneras de personalizarlo:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Modificar la taxonom\u00eda:<\/strong> Puedes reemplazar <code>'tu_taxonomia'<\/code> por cualquier slug de taxonom\u00eda personalizada o por las taxonom\u00edas predeterminadas como <code>'category'<\/code> o <code>'post_tag'<\/code>. Si est\u00e1s trabajando con una taxonom\u00eda personalizada, aseg\u00farate de utilizar el slug correcto que hayas definido en tu c\u00f3digo o que te haya proporcionado el tema o plugin correspondiente.<\/li>\n\n\n\n<li><strong>Modificar el rol de usuario:<\/strong> La funci\u00f3n <code>current_user_can<\/code> acepta diferentes capacidades de usuario. En este ejemplo, est\u00e1 configurado para que solo los usuarios con la capacidad <code>manage_options<\/code> (generalmente administradores) puedan a\u00f1adir t\u00e9rminos. Si deseas permitir que otros roles tambi\u00e9n puedan hacerlo, puedes cambiar la capacidad. Por ejemplo:<ul><li><code>edit_posts<\/code>: Permite a autores y editores.<\/li><li><code>edit_others_posts<\/code>: Solo permite a editores.<\/li><li><code>publish_posts<\/code>: Permite a los usuarios que pueden publicar, como autores y editores.<\/li><\/ul>Para obtener una lista completa de las capacidades de usuario, puedes consultar la documentaci\u00f3n oficial de WordPress o utilizar la funci\u00f3n <code>user_can<\/code> para verificar qu\u00e9 roles tienen determinadas capacidades.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Casos pr\u00e1cticos de uso<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Existen diversos escenarios en los que limitar la creaci\u00f3n de t\u00e9rminos por rol de usuario puede ser \u00fatil:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Revistas o sitios de noticias:<\/strong> En un entorno con varios autores, podr\u00edas querer que solo los editores o administradores tengan el control sobre las categor\u00edas y etiquetas para mantener una organizaci\u00f3n coherente.<\/li>\n\n\n\n<li><strong>Tiendas en l\u00ednea:<\/strong> Si tienes un sitio de comercio electr\u00f3nico con productos clasificados en varias categor\u00edas y etiquetas personalizadas, es posible que desees que solo los administradores o gestores de tienda puedan a\u00f1adir nuevos t\u00e9rminos. Esto ayuda a evitar la creaci\u00f3n de t\u00e9rminos incorrectos o duplicados.<\/li>\n\n\n\n<li><strong>Portafolios de agencias:<\/strong> Si tu sitio utiliza taxonom\u00edas personalizadas para clasificar trabajos o proyectos, podr\u00edas querer que solo ciertos roles tengan el poder de modificar las categor\u00edas, evitando que usuarios con menos privilegios rompan la estructura organizada de tu portafolio.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Seguridad y control del sitio<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s de mantener la organizaci\u00f3n, implementar este tipo de restricciones es tambi\u00e9n una pr\u00e1ctica recomendada en t\u00e9rminos de seguridad y control. Aunque la capacidad de a\u00f1adir nuevos t\u00e9rminos de taxonom\u00eda pueda parecer una acci\u00f3n menor, cuando hay muchos usuarios creando y gestionando contenido, este tipo de limitaciones ayuda a evitar errores involuntarios y posibles vulnerabilidades.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En muchos casos, otorgar permisos indiscriminadamente a usuarios sin experiencia o con menos responsabilidad dentro del sitio puede dar lugar a problemas. Limitar la creaci\u00f3n de t\u00e9rminos a roles espec\u00edficos garantiza que solo personas con el conocimiento y la autoridad adecuada puedan modificar ciertos aspectos clave del sitio.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Mejoras adicionales<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Si bien este snippet es funcional, podr\u00edas querer a\u00f1adir un sistema m\u00e1s robusto para gestionar estas restricciones. Por ejemplo, podr\u00edas crear una p\u00e1gina dentro del \u00e1rea de administraci\u00f3n de WordPress que permita a los administradores controlar qui\u00e9n puede a\u00f1adir t\u00e9rminos a qu\u00e9 taxonom\u00edas sin necesidad de editar el c\u00f3digo. Esto podr\u00eda lograrse utilizando las capacidades de roles y permisos nativos de WordPress junto con alg\u00fan plugin de gesti\u00f3n de usuarios como \u00abUser Role Editor\u00bb, que facilita la asignaci\u00f3n de permisos a los diferentes roles.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Conclusi\u00f3n<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Limitar la creaci\u00f3n de nuevos t\u00e9rminos de taxonom\u00eda en WordPress por rol de usuario es una pr\u00e1ctica muy \u00fatil para mantener la coherencia y el control sobre el contenido del sitio. Con este simple snippet, puedes asegurarte de que solo los usuarios con las capacidades adecuadas tengan el poder de modificar ciertas taxonom\u00edas, evitando as\u00ed la creaci\u00f3n innecesaria de t\u00e9rminos y manteniendo el sitio organizado y f\u00e1cil de navegar.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La gesti\u00f3n de contenido en WordPress es extremadamente flexible, y una de las razones de su popularidad es su capacidad para ser personalizada seg\u00fan las necesidades del proyecto. Uno de los elementos clave en esta flexibilidad es el uso de taxonom\u00edas, las cuales permiten clasificar el contenido de forma personalizada, adem\u00e1s de las taxonom\u00edas predeterminadas [&hellip;]<\/p>\n","protected":false},"author":88919,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"episode_type":"","audio_file":"","podmotor_file_id":"","podmotor_episode_id":"","cover_image":"","cover_image_id":"","duration":"","filesize":"","filesize_raw":"","date_recorded":"","explicit":"","block":"","itunes_episode_number":"","itunes_title":"","itunes_season_number":"","itunes_episode_type":"","footnotes":""},"categories":[284],"tags":[],"class_list":["post-3363","post","type-post","status-publish","format-standard","hentry","category-wordpress"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Limitar la creaci\u00f3n de nuevos t\u00e9rminos de taxonom\u00eda por rol de usuario en WordPress - DarioBF<\/title>\n<meta name=\"description\" content=\"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dariobf.com\/evitar-anadir-terminos-taxonomia-rol-usuario\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Limitar la creaci\u00f3n de nuevos t\u00e9rminos de taxonom\u00eda por rol de usuario en WordPress - DarioBF\" \/>\n<meta property=\"og:description\" content=\"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dariobf.com\/evitar-anadir-terminos-taxonomia-rol-usuario\/\" \/>\n<meta property=\"og:site_name\" content=\"Experto en WordPress - Dario BF\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/dariobf\" \/>\n<meta property=\"article:published_time\" content=\"2018-08-24T10:44:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-12T14:45:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dariobf.com\/wp-content\/uploads\/2016\/04\/opengraph_thumb.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Dario BF\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DarioBF\" \/>\n<meta name=\"twitter:site\" content=\"@DarioBF\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dario BF\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/evitar-anadir-terminos-taxonomia-rol-usuario\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/evitar-anadir-terminos-taxonomia-rol-usuario\\\/\"},\"author\":{\"name\":\"Dario BF\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#\\\/schema\\\/person\\\/b9a59b2eb5a4946e38efd1b89a8158bd\"},\"headline\":\"Limitar la creaci\u00f3n de nuevos t\u00e9rminos de taxonom\u00eda por rol de usuario en WordPress\",\"datePublished\":\"2018-08-24T10:44:10+00:00\",\"dateModified\":\"2024-09-12T14:45:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/evitar-anadir-terminos-taxonomia-rol-usuario\\\/\"},\"wordCount\":1229,\"commentCount\":0,\"articleSection\":[\"WordPress\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dariobf.com\\\/evitar-anadir-terminos-taxonomia-rol-usuario\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/evitar-anadir-terminos-taxonomia-rol-usuario\\\/\",\"url\":\"https:\\\/\\\/www.dariobf.com\\\/evitar-anadir-terminos-taxonomia-rol-usuario\\\/\",\"name\":\"Limitar la creaci\u00f3n de nuevos t\u00e9rminos de taxonom\u00eda por rol de usuario en WordPress - DarioBF\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#website\"},\"datePublished\":\"2018-08-24T10:44:10+00:00\",\"dateModified\":\"2024-09-12T14:45:42+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#\\\/schema\\\/person\\\/b9a59b2eb5a4946e38efd1b89a8158bd\"},\"description\":\"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/evitar-anadir-terminos-taxonomia-rol-usuario\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dariobf.com\\\/evitar-anadir-terminos-taxonomia-rol-usuario\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/evitar-anadir-terminos-taxonomia-rol-usuario\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/www.dariobf.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Limitar la creaci\u00f3n de nuevos t\u00e9rminos de taxonom\u00eda por rol de usuario en WordPress\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#website\",\"url\":\"https:\\\/\\\/www.dariobf.com\\\/\",\"name\":\"Experto en WordPress - Dario BF\",\"description\":\"Dise\u00f1ador y desarrollador web especializado en WordPress; Front-end HTML5, CSS3 y Javascript.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dariobf.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#\\\/schema\\\/person\\\/b9a59b2eb5a4946e38efd1b89a8158bd\",\"name\":\"Dario BF\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g\",\"caption\":\"Dario BF\"},\"sameAs\":[\"https:\\\/\\\/www.dariobf.com\"],\"url\":\"https:\\\/\\\/www.dariobf.com\\\/author\\\/dbalfer\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Limitar la creaci\u00f3n de nuevos t\u00e9rminos de taxonom\u00eda por rol de usuario en WordPress - DarioBF","description":"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dariobf.com\/evitar-anadir-terminos-taxonomia-rol-usuario\/","og_locale":"es_ES","og_type":"article","og_title":"Limitar la creaci\u00f3n de nuevos t\u00e9rminos de taxonom\u00eda por rol de usuario en WordPress - DarioBF","og_description":"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...","og_url":"https:\/\/www.dariobf.com\/evitar-anadir-terminos-taxonomia-rol-usuario\/","og_site_name":"Experto en WordPress - Dario BF","article_publisher":"https:\/\/facebook.com\/dariobf","article_published_time":"2018-08-24T10:44:10+00:00","article_modified_time":"2024-09-12T14:45:42+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.dariobf.com\/wp-content\/uploads\/2016\/04\/opengraph_thumb.jpg","type":"image\/jpeg"}],"author":"Dario BF","twitter_card":"summary_large_image","twitter_creator":"@DarioBF","twitter_site":"@DarioBF","twitter_misc":{"Escrito por":"Dario BF","Tiempo de lectura":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dariobf.com\/evitar-anadir-terminos-taxonomia-rol-usuario\/#article","isPartOf":{"@id":"https:\/\/www.dariobf.com\/evitar-anadir-terminos-taxonomia-rol-usuario\/"},"author":{"name":"Dario BF","@id":"https:\/\/www.dariobf.com\/#\/schema\/person\/b9a59b2eb5a4946e38efd1b89a8158bd"},"headline":"Limitar la creaci\u00f3n de nuevos t\u00e9rminos de taxonom\u00eda por rol de usuario en WordPress","datePublished":"2018-08-24T10:44:10+00:00","dateModified":"2024-09-12T14:45:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dariobf.com\/evitar-anadir-terminos-taxonomia-rol-usuario\/"},"wordCount":1229,"commentCount":0,"articleSection":["WordPress"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dariobf.com\/evitar-anadir-terminos-taxonomia-rol-usuario\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dariobf.com\/evitar-anadir-terminos-taxonomia-rol-usuario\/","url":"https:\/\/www.dariobf.com\/evitar-anadir-terminos-taxonomia-rol-usuario\/","name":"Limitar la creaci\u00f3n de nuevos t\u00e9rminos de taxonom\u00eda por rol de usuario en WordPress - DarioBF","isPartOf":{"@id":"https:\/\/www.dariobf.com\/#website"},"datePublished":"2018-08-24T10:44:10+00:00","dateModified":"2024-09-12T14:45:42+00:00","author":{"@id":"https:\/\/www.dariobf.com\/#\/schema\/person\/b9a59b2eb5a4946e38efd1b89a8158bd"},"description":"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...","breadcrumb":{"@id":"https:\/\/www.dariobf.com\/evitar-anadir-terminos-taxonomia-rol-usuario\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dariobf.com\/evitar-anadir-terminos-taxonomia-rol-usuario\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dariobf.com\/evitar-anadir-terminos-taxonomia-rol-usuario\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.dariobf.com\/"},{"@type":"ListItem","position":2,"name":"Limitar la creaci\u00f3n de nuevos t\u00e9rminos de taxonom\u00eda por rol de usuario en WordPress"}]},{"@type":"WebSite","@id":"https:\/\/www.dariobf.com\/#website","url":"https:\/\/www.dariobf.com\/","name":"Experto en WordPress - Dario BF","description":"Dise\u00f1ador y desarrollador web especializado en WordPress; Front-end HTML5, CSS3 y Javascript.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dariobf.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.dariobf.com\/#\/schema\/person\/b9a59b2eb5a4946e38efd1b89a8158bd","name":"Dario BF","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g","caption":"Dario BF"},"sameAs":["https:\/\/www.dariobf.com"],"url":"https:\/\/www.dariobf.com\/author\/dbalfer\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts\/3363","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/users\/88919"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/comments?post=3363"}],"version-history":[{"count":0,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts\/3363\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/media?parent=3363"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/categories?post=3363"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/tags?post=3363"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":3192,"date":"2018-04-25T20:09:18","date_gmt":"2018-04-25T18:09:18","guid":{"rendered":"https:\/\/www.dariobf.com\/?p=3192"},"modified":"2024-09-12T16:59:09","modified_gmt":"2024-09-12T14:59:09","slug":"imagenes-schema-contenido-wordpress","status":"publish","type":"post","link":"https:\/\/www.dariobf.com\/imagenes-schema-contenido-wordpress\/","title":{"rendered":"Envolver im\u00e1genes del contenido de WordPress, listo para schema"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Seguramente habr\u00e1s tenido la necesidad de envolver las im\u00e1genes de tu contenido en WordPress con un div (o cualquier otra etiqueta).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El caso m\u00e1s com\u00fan (sirva como ejemplo) ser\u00eda el de los <a href=\"http:\/\/schema.org\/\">schemas<\/a> donde al utilizar el schema <a href=\"http:\/\/schema.org\/Article\">Article<\/a> debemos tener declaradas las im\u00e1genes del mismo como <a href=\"http:\/\/schema.org\/ImageObject\">ImageObject<\/a> que contienen un atributo src.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esto es un problema de forma nativa, ya que la funci\u00f3n the_content no permite incrustar contenido extra respondiendo a una etiqueta concreta. Vamos, que no podemos decirle a the_content() que meta todas las etiquetas &lt;img&gt; dentro de un div con la clase \u00abimagen-molona\u00bb.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00bfY esto es un problema a la hora de trabajar con schemas? Pues s\u00ed, porque no podemos etiquetar debidamente las im\u00e1genes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hay m\u00e1s casos en los que nos interesar\u00eda envolver las im\u00e1genes con un div (o un &lt;a &gt;, por ejemplo); pero voy a centrarme en el ejemplo de los schemas porque se ve mejor la idea.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Entendiendo los schemas<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Los schemas o formatos enriquecidos le dan a los motores de b\u00fasqueda (o de indexaci\u00f3n, en general) informaci\u00f3n extra sobre nuestro contenido. De forma sencilla y para que se entienda sin entrar en mucho detalle, etiqueta nuestro contenido para especificar qu\u00e9 es cada cosa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En el ejemplo que estamos tratando (un art\u00edculo de un blog) estar\u00edamos utilizando el schema <a href=\"http:\/\/schema.org\/Article\">Article<\/a> (bastante obvio, \u00bfno?).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Con los schemas podemos etiquetar informaci\u00f3n como:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Qui\u00e9n lo escribi\u00f3<\/li>\n\n\n\n<li>A qu\u00e9 entidad pertenece<\/li>\n\n\n\n<li>La fecha de publicaci\u00f3n y\/o modificaci\u00f3n<\/li>\n\n\n\n<li>Las im\u00e1genes<\/li>\n\n\n\n<li>El propio contenido<\/li>\n\n\n\n<li><a href=\"http:\/\/schema.org\/Article\">Y un mont\u00f3n de opciones m\u00e1s<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Entonces, \u00bfpara qu\u00e9 queremos etiquetar nuestros contenidos con schemas? Para SEO. Para optimizar y mejorar la indexaci\u00f3n de nuestros contenidos en motores de b\u00fasqueda como Google o Bing.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Implementando schemas en WordPress<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Aunque esto da para un art\u00edculo en si mismo (lo redactar\u00e9 en el futuro), en esta entrada me limitar\u00e9 a explicar c\u00f3mo hacerlo con las im\u00e1genes, ya que tendremos que filtrar el contenido para hacerlo. Y os compartir\u00e9 el c\u00f3digo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No obstante, a modo de resumen, deberemos modificar nuestro tema o theme para a\u00f1adir estas propiedades en las diferentes plantillas (o templates) que utilizamos en nuestro sitio. Habitualmente modificaremos el single.php y el page.php de nuestros temas. Como digo&#8230; para otro art\u00edculo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A\u00f1adiendo los schemas a las im\u00e1genes del contenido<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El principal problema de WordPress, como mencion\u00e9 antes, es que imprime todo el contenido directamente con una funci\u00f3n: <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/the_content\/\">the_content()<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esto significa que, si queremos a\u00f1adir una capa extra a nuestras im\u00e1genes, deberemos filtrar este contenido y a\u00f1adirlo por otras v\u00edas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lo primero que te voy a ense\u00f1ar es el concepto de lo que queremos conseguir:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-18\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-code-table shcb-line-numbers\"><span class='shcb-loc'><span><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">div<\/span> <span class=\"hljs-attr\">itemprop<\/span>=<span class=\"hljs-string\">\"image\"<\/span> <span class=\"hljs-attr\">itemscope<\/span> <span class=\"hljs-attr\">itemtype<\/span>=<span class=\"hljs-string\">\"http:\/\/schema.org\/ImageObject\"<\/span>&gt;<\/span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">img<\/span> <span class=\"hljs-attr\">src<\/span>=<span class=\"hljs-string\">\"...\"<\/span> <span class=\"hljs-attr\">alt<\/span>=<span class=\"hljs-string\">\"...\"<\/span> <span class=\"hljs-attr\">itemprop<\/span>=<span class=\"hljs-string\">\"url\"<\/span> \/&gt;<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">div<\/span>&gt;<\/span>\n<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-18\"><span class=\"shcb-language__label\">Lenguaje del c\u00f3digo:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Si te fijas, ver\u00e1s que el div que contiene la imagen posee los atributos itemprop, itemscope e itemtype. Estos son atributos propios del schema, con lo que indicamos qu\u00e9 tipo de propiedad vamos a declarar, que el div es el rango al que aplica dicha propiedad y el tipo de dato que vamos a declarar respectivamente.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Aplicar estos cambios en WordPress<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Como digo, es necesario atacar a la funci\u00f3n the_content() que utilizamos en nuestro tema para filtrarlo y envolver las im\u00e1genes con un div que contenga las propiedades que hemos visto antes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esto lo hacemos con un filter, tal que as\u00ed:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-19\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">add_filter( <span class=\"hljs-string\">'the_content'<\/span>, <span class=\"hljs-string\">'bf_images_wrap_schemas'<\/span>, <span class=\"hljs-number\">12<\/span> );<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-19\"><span class=\"shcb-language__label\">Lenguaje del c\u00f3digo:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Con este filtro actuamos sobre el hook \u00abthe_content\u00bb; el encargado de sacar el contenido del art\u00edculo o p\u00e1gina de la base de datos e imprimirlo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando llegue el momento, llamaremos a la funci\u00f3n <em>bf_images_wrap_schemas<\/em>, que tendr\u00e1 esta forma:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-20\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-code-table shcb-line-numbers\"><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">bf_images_wrap_schemas<\/span><span class=\"hljs-params\">( $content )<\/span> <\/span>{\n<\/span><\/span><span class='shcb-loc'><span>\t<span class=\"hljs-comment\">\/\/ Expresi\u00f3n regular para encontrar las etiquetas &lt;img&gt;<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\t$pattern = <span class=\"hljs-string\">'\/(&lt;img(&#91;^&gt;]*)&gt;)\/i'<\/span>;\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>\t<span class=\"hljs-comment\">\/\/ Con qu\u00e9 vamos a reemplazar esas etiquetas img. $1 responde a la etiqueta img encontrada, as\u00ed no perdemos su contenido.<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\t$replacement = <span class=\"hljs-string\">'&lt;div itemprop=\"image\" itemscope itemtype=\"http:\/\/schema.org\/ImageObject\"&gt;$1&lt;\/div&gt;'<\/span>;\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>\t<span class=\"hljs-comment\">\/\/ En este caso s\u00f3lo aplicamos el cambio en los single<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\t<span class=\"hljs-keyword\">if<\/span>( is_singular() ){\n<\/span><\/span><span class='shcb-loc'><span>\t   <span class=\"hljs-comment\">\/\/ run preg_replace() on the single's $content<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\t   $content = preg_replace( $pattern, $replacement, $content );\n<\/span><\/span><span class='shcb-loc'><span>\t}\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>   <span class=\"hljs-comment\">\/\/ Devolvemos el contenido filtrado<\/span>\n<\/span><\/span><span class='shcb-loc'><span>   <span class=\"hljs-keyword\">return<\/span> $content;\n<\/span><\/span><span class='shcb-loc'><span>}\n<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-20\"><span class=\"shcb-language__label\">Lenguaje del c\u00f3digo:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Con esto, ya estamos obteniendo el resultado deseado; s\u00f3lo nos falta a\u00f1adir la propiedad (itemprop) <em>url<\/em> a la propia etiqueta img.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En este caso, como tenemos que modificar la propia etiqueta, tenemos que utilizar otra vez el filtro the_content con una nueva funci\u00f3n:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-21\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-code-table shcb-line-numbers\"><span class='shcb-loc'><span>add_filter(<span class=\"hljs-string\">'the_content'<\/span>,<span class=\"hljs-string\">'bf_add_image_itemprop'<\/span>);\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">bf_add_image_itemprop<\/span><span class=\"hljs-params\">($content)<\/span> <\/span>{\n<\/span><\/span><span class='shcb-loc'><span>    $content = str_replace(<span class=\"hljs-string\">'&lt;img'<\/span>,<span class=\"hljs-string\">'&lt;img itemprop=\"url\"'<\/span>, $content);\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-keyword\">return<\/span> $content;\n<\/span><\/span><span class='shcb-loc'><span>}\n<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-21\"><span class=\"shcb-language__label\">Lenguaje del c\u00f3digo:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">En este filtro simplemente reemplazamos todas las coincidencias del contenido con \u00ab<em>&lt;img<\/em>\u00bb por \u00ab<em>&lt;img itemprop=\u00bburl\u00bb<\/em>\u00ab.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Y listo, ya tenemos nuestras im\u00e1genes marcadas debidamente con las propiedades del schema.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00bfTe ha resultado \u00fatil esta entrada? \u00a1Comp\u00e1rtela!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Te ense\u00f1o c\u00f3mo etiquetar correctamente las im\u00e1genes de tu contenido en WordPress<\/p>\n","protected":false},"author":88919,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"episode_type":"","audio_file":"","podmotor_file_id":"","podmotor_episode_id":"","cover_image":"","cover_image_id":"","duration":"","filesize":"","filesize_raw":"","date_recorded":"","explicit":"","block":"","itunes_episode_number":"","itunes_title":"","itunes_season_number":"","itunes_episode_type":"","footnotes":""},"categories":[284],"tags":[],"class_list":["post-3192","post","type-post","status-publish","format-standard","hentry","category-wordpress"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Envolver im\u00e1genes del contenido de WordPress, listo para schema - DarioBF<\/title>\n<meta name=\"description\" content=\"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dariobf.com\/imagenes-schema-contenido-wordpress\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Envolver im\u00e1genes del contenido de WordPress, listo para schema - DarioBF\" \/>\n<meta property=\"og:description\" content=\"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dariobf.com\/imagenes-schema-contenido-wordpress\/\" \/>\n<meta property=\"og:site_name\" content=\"Experto en WordPress - Dario BF\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/dariobf\" \/>\n<meta property=\"article:published_time\" content=\"2018-04-25T18:09:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-12T14:59:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dariobf.com\/wp-content\/uploads\/2016\/04\/opengraph_thumb.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Dario BF\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DarioBF\" \/>\n<meta name=\"twitter:site\" content=\"@DarioBF\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dario BF\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/imagenes-schema-contenido-wordpress\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/imagenes-schema-contenido-wordpress\\\/\"},\"author\":{\"name\":\"Dario BF\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#\\\/schema\\\/person\\\/b9a59b2eb5a4946e38efd1b89a8158bd\"},\"headline\":\"Envolver im\u00e1genes del contenido de WordPress, listo para schema\",\"datePublished\":\"2018-04-25T18:09:18+00:00\",\"dateModified\":\"2024-09-12T14:59:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/imagenes-schema-contenido-wordpress\\\/\"},\"wordCount\":722,\"commentCount\":0,\"articleSection\":[\"WordPress\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dariobf.com\\\/imagenes-schema-contenido-wordpress\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/imagenes-schema-contenido-wordpress\\\/\",\"url\":\"https:\\\/\\\/www.dariobf.com\\\/imagenes-schema-contenido-wordpress\\\/\",\"name\":\"Envolver im\u00e1genes del contenido de WordPress, listo para schema - DarioBF\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#website\"},\"datePublished\":\"2018-04-25T18:09:18+00:00\",\"dateModified\":\"2024-09-12T14:59:09+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#\\\/schema\\\/person\\\/b9a59b2eb5a4946e38efd1b89a8158bd\"},\"description\":\"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/imagenes-schema-contenido-wordpress\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dariobf.com\\\/imagenes-schema-contenido-wordpress\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/imagenes-schema-contenido-wordpress\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/www.dariobf.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Envolver im\u00e1genes del contenido de WordPress, listo para schema\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#website\",\"url\":\"https:\\\/\\\/www.dariobf.com\\\/\",\"name\":\"Experto en WordPress - Dario BF\",\"description\":\"Dise\u00f1ador y desarrollador web especializado en WordPress; Front-end HTML5, CSS3 y Javascript.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dariobf.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#\\\/schema\\\/person\\\/b9a59b2eb5a4946e38efd1b89a8158bd\",\"name\":\"Dario BF\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g\",\"caption\":\"Dario BF\"},\"sameAs\":[\"https:\\\/\\\/www.dariobf.com\"],\"url\":\"https:\\\/\\\/www.dariobf.com\\\/author\\\/dbalfer\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Envolver im\u00e1genes del contenido de WordPress, listo para schema - DarioBF","description":"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dariobf.com\/imagenes-schema-contenido-wordpress\/","og_locale":"es_ES","og_type":"article","og_title":"Envolver im\u00e1genes del contenido de WordPress, listo para schema - DarioBF","og_description":"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...","og_url":"https:\/\/www.dariobf.com\/imagenes-schema-contenido-wordpress\/","og_site_name":"Experto en WordPress - Dario BF","article_publisher":"https:\/\/facebook.com\/dariobf","article_published_time":"2018-04-25T18:09:18+00:00","article_modified_time":"2024-09-12T14:59:09+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.dariobf.com\/wp-content\/uploads\/2016\/04\/opengraph_thumb.jpg","type":"image\/jpeg"}],"author":"Dario BF","twitter_card":"summary_large_image","twitter_creator":"@DarioBF","twitter_site":"@DarioBF","twitter_misc":{"Escrito por":"Dario BF","Tiempo de lectura":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dariobf.com\/imagenes-schema-contenido-wordpress\/#article","isPartOf":{"@id":"https:\/\/www.dariobf.com\/imagenes-schema-contenido-wordpress\/"},"author":{"name":"Dario BF","@id":"https:\/\/www.dariobf.com\/#\/schema\/person\/b9a59b2eb5a4946e38efd1b89a8158bd"},"headline":"Envolver im\u00e1genes del contenido de WordPress, listo para schema","datePublished":"2018-04-25T18:09:18+00:00","dateModified":"2024-09-12T14:59:09+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dariobf.com\/imagenes-schema-contenido-wordpress\/"},"wordCount":722,"commentCount":0,"articleSection":["WordPress"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dariobf.com\/imagenes-schema-contenido-wordpress\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dariobf.com\/imagenes-schema-contenido-wordpress\/","url":"https:\/\/www.dariobf.com\/imagenes-schema-contenido-wordpress\/","name":"Envolver im\u00e1genes del contenido de WordPress, listo para schema - DarioBF","isPartOf":{"@id":"https:\/\/www.dariobf.com\/#website"},"datePublished":"2018-04-25T18:09:18+00:00","dateModified":"2024-09-12T14:59:09+00:00","author":{"@id":"https:\/\/www.dariobf.com\/#\/schema\/person\/b9a59b2eb5a4946e38efd1b89a8158bd"},"description":"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...","breadcrumb":{"@id":"https:\/\/www.dariobf.com\/imagenes-schema-contenido-wordpress\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dariobf.com\/imagenes-schema-contenido-wordpress\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dariobf.com\/imagenes-schema-contenido-wordpress\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.dariobf.com\/"},{"@type":"ListItem","position":2,"name":"Envolver im\u00e1genes del contenido de WordPress, listo para schema"}]},{"@type":"WebSite","@id":"https:\/\/www.dariobf.com\/#website","url":"https:\/\/www.dariobf.com\/","name":"Experto en WordPress - Dario BF","description":"Dise\u00f1ador y desarrollador web especializado en WordPress; Front-end HTML5, CSS3 y Javascript.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dariobf.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.dariobf.com\/#\/schema\/person\/b9a59b2eb5a4946e38efd1b89a8158bd","name":"Dario BF","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g","caption":"Dario BF"},"sameAs":["https:\/\/www.dariobf.com"],"url":"https:\/\/www.dariobf.com\/author\/dbalfer\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts\/3192","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/users\/88919"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/comments?post=3192"}],"version-history":[{"count":0,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts\/3192\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/media?parent=3192"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/categories?post=3192"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/tags?post=3192"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":3175,"date":"2018-03-19T20:25:46","date_gmt":"2018-03-19T18:25:46","guid":{"rendered":"https:\/\/www.dariobf.com\/?p=3175"},"modified":"2024-09-12T16:48:08","modified_gmt":"2024-09-12T14:48:08","slug":"ordenar-wp_query-por-valor-de-custom-field","status":"publish","type":"post","link":"https:\/\/www.dariobf.com\/ordenar-wp_query-por-valor-de-custom-field\/","title":{"rendered":"Ordenar WP_Query por valor de custom field"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">T\u00f3mese este art\u00edculo como una breve extensi\u00f3n de los art\u00edculos <a href=\"https:\/\/www.dariobf.com\/wp_query-wordpress\/\">WP_Query, sac\u00e1ndole jugo a WordPress<\/a> y <a href=\"https:\/\/www.dariobf.com\/metabox-wordpress\/\">Metaboxes en WordPress, c\u00f3mo crearlos<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00bfQue por qu\u00e9 es una breve extensi\u00f3n de ambos? Porque en el primero te explico c\u00f3mo funciona WP_Query, y en el segundo c\u00f3mo introducir custom fields con metaboxes en tus post types (ah, si; tambi\u00e9n tengo un art\u00edculo para explicarte los <a href=\"https:\/\/www.dariobf.com\/custom-post-types-wordpress\/\">Custom Post Types<\/a>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora que ya sabes c\u00f3mo consultar con WP_Query y crear custom fields en tus posibles Custom Post Types (o los propios de WordPress), voy a explicarte c\u00f3mo ordenar esas consultas personalizadas en WordPress en base al valor de un custom field.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando definimos los argumentos del WP_Query personalizado, podemos especificar que ordene por un meta_value, de esta forma:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-22\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-code-table shcb-line-numbers\"><span class='shcb-loc'><span>$args = <span class=\"hljs-keyword\">array<\/span>(\n<\/span><\/span><span class='shcb-loc'><span>\t<span class=\"hljs-string\">'post_type'<\/span> =&gt; <span class=\"hljs-string\">'post'<\/span>,\n<\/span><\/span><span class='shcb-loc'><span>\t<span class=\"hljs-string\">'posts_per_page'<\/span> =&gt; <span class=\"hljs-number\">-1<\/span>, <span class=\"hljs-comment\">\/\/ NO HACER ESTO, es una muestra<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\t<span class=\"hljs-string\">'orderby'<\/span>   =&gt; <span class=\"hljs-string\">'meta_value'<\/span>\n<\/span><\/span><span class='shcb-loc'><span>);\n<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-22\"><span class=\"shcb-language__label\">Lenguaje del c\u00f3digo:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">El problema es que esto es muy random: \u00bfPor qu\u00e9 campo meta ordenamos? \u00bfQu\u00e9 criterio seguimos?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos especificar el campo en s\u00ed y, adem\u00e1s, podemos decirle que tome su contenido como un tipo de contenido concreto (String, entero, etc&#8230;). Para muestra, un bot\u00f3n:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-23\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-code-table shcb-line-numbers\"><span class='shcb-loc'><span>$args = <span class=\"hljs-keyword\">array<\/span>(\n<\/span><\/span><span class='shcb-loc'><span>\t<span class=\"hljs-string\">'post_type'<\/span> =&gt; <span class=\"hljs-string\">'post'<\/span>,\n<\/span><\/span><span class='shcb-loc'><span>\t<span class=\"hljs-string\">'posts_per_page'<\/span> =&gt; <span class=\"hljs-number\">-1<\/span>, <span class=\"hljs-comment\">\/\/ NO HACER ESTO, es una muestra<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\t<span class=\"hljs-string\">'orderby'<\/span>   =&gt; <span class=\"hljs-string\">'meta_value'<\/span>,\n<\/span><\/span><span class='shcb-loc'><span>\t<span class=\"hljs-string\">'meta_key'<\/span>  =&gt; <span class=\"hljs-string\">'post-votos'<\/span>,\n<\/span><\/span><span class='shcb-loc'><span>\t<span class=\"hljs-string\">'meta_type'<\/span> =&gt; <span class=\"hljs-string\">'NUMERIC'<\/span>\n<\/span><\/span><span class='shcb-loc'><span>);\n<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-23\"><span class=\"shcb-language__label\">Lenguaje del c\u00f3digo:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Si te fijas, hemos ampliado el ejemplo anterior con los campos \u00abmeta_key\u00bb y \u00abmeta_type\u00bb. El primero ataca al campo personalizado \u00abpost-votos\u00bb y el segundo referencia que debemos tratar el dicho campo con valor num\u00e9rico ( aqu\u00ed podr\u00edamos alternar este valor con los tipos m\u00e1s comunes: &#8216;NUMERIC&#8217;, &#8216;BINARY&#8217;, &#8216;CHAR&#8217;, &#8216;DATE&#8217;, &#8216;DATETIME&#8217;, &#8216;DECIMAL&#8217;, &#8216;SIGNED&#8217;, &#8216;TIME&#8217; o &#8216;UNSIGNED&#8217;).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Con todo esto, estaremos filtrando los art\u00edculos de nuestro sitio web o blog en base al n\u00famero de votos que han recibido los art\u00edculos (ejemplo ficticio).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00bfTe gusta la idea? \u00a1Comp\u00e1rtela con tus amigos!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>T\u00f3mese este art\u00edculo como una breve extensi\u00f3n de los art\u00edculos WP_Query, sac\u00e1ndole jugo a WordPress y Metaboxes en WordPress, c\u00f3mo crearlos. \u00bfQue por qu\u00e9 es una breve extensi\u00f3n de ambos? Porque en el primero te explico c\u00f3mo funciona WP_Query, y en el segundo c\u00f3mo introducir custom fields con metaboxes en tus post types (ah, si; [&hellip;]<\/p>\n","protected":false},"author":88919,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"episode_type":"","audio_file":"","podmotor_file_id":"","podmotor_episode_id":"","cover_image":"","cover_image_id":"","duration":"","filesize":"","filesize_raw":"","date_recorded":"","explicit":"","block":"","itunes_episode_number":"","itunes_title":"","itunes_season_number":"","itunes_episode_type":"","footnotes":""},"categories":[284],"tags":[],"class_list":["post-3175","post","type-post","status-publish","format-standard","hentry","category-wordpress"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Ordenar WP_Query por valor de custom field - DarioBF<\/title>\n<meta name=\"description\" content=\"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dariobf.com\/ordenar-wp_query-por-valor-de-custom-field\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ordenar WP_Query por valor de custom field - DarioBF\" \/>\n<meta property=\"og:description\" content=\"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dariobf.com\/ordenar-wp_query-por-valor-de-custom-field\/\" \/>\n<meta property=\"og:site_name\" content=\"Experto en WordPress - Dario BF\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/dariobf\" \/>\n<meta property=\"article:published_time\" content=\"2018-03-19T18:25:46+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-12T14:48:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dariobf.com\/wp-content\/uploads\/2016\/04\/opengraph_thumb.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Dario BF\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DarioBF\" \/>\n<meta name=\"twitter:site\" content=\"@DarioBF\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dario BF\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/ordenar-wp_query-por-valor-de-custom-field\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/ordenar-wp_query-por-valor-de-custom-field\\\/\"},\"author\":{\"name\":\"Dario BF\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#\\\/schema\\\/person\\\/b9a59b2eb5a4946e38efd1b89a8158bd\"},\"headline\":\"Ordenar WP_Query por valor de custom field\",\"datePublished\":\"2018-03-19T18:25:46+00:00\",\"dateModified\":\"2024-09-12T14:48:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/ordenar-wp_query-por-valor-de-custom-field\\\/\"},\"wordCount\":291,\"commentCount\":1,\"articleSection\":[\"WordPress\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dariobf.com\\\/ordenar-wp_query-por-valor-de-custom-field\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/ordenar-wp_query-por-valor-de-custom-field\\\/\",\"url\":\"https:\\\/\\\/www.dariobf.com\\\/ordenar-wp_query-por-valor-de-custom-field\\\/\",\"name\":\"Ordenar WP_Query por valor de custom field - DarioBF\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#website\"},\"datePublished\":\"2018-03-19T18:25:46+00:00\",\"dateModified\":\"2024-09-12T14:48:08+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#\\\/schema\\\/person\\\/b9a59b2eb5a4946e38efd1b89a8158bd\"},\"description\":\"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/ordenar-wp_query-por-valor-de-custom-field\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dariobf.com\\\/ordenar-wp_query-por-valor-de-custom-field\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/ordenar-wp_query-por-valor-de-custom-field\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/www.dariobf.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ordenar WP_Query por valor de custom field\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#website\",\"url\":\"https:\\\/\\\/www.dariobf.com\\\/\",\"name\":\"Experto en WordPress - Dario BF\",\"description\":\"Dise\u00f1ador y desarrollador web especializado en WordPress; Front-end HTML5, CSS3 y Javascript.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dariobf.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#\\\/schema\\\/person\\\/b9a59b2eb5a4946e38efd1b89a8158bd\",\"name\":\"Dario BF\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g\",\"caption\":\"Dario BF\"},\"sameAs\":[\"https:\\\/\\\/www.dariobf.com\"],\"url\":\"https:\\\/\\\/www.dariobf.com\\\/author\\\/dbalfer\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Ordenar WP_Query por valor de custom field - DarioBF","description":"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dariobf.com\/ordenar-wp_query-por-valor-de-custom-field\/","og_locale":"es_ES","og_type":"article","og_title":"Ordenar WP_Query por valor de custom field - DarioBF","og_description":"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...","og_url":"https:\/\/www.dariobf.com\/ordenar-wp_query-por-valor-de-custom-field\/","og_site_name":"Experto en WordPress - Dario BF","article_publisher":"https:\/\/facebook.com\/dariobf","article_published_time":"2018-03-19T18:25:46+00:00","article_modified_time":"2024-09-12T14:48:08+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.dariobf.com\/wp-content\/uploads\/2016\/04\/opengraph_thumb.jpg","type":"image\/jpeg"}],"author":"Dario BF","twitter_card":"summary_large_image","twitter_creator":"@DarioBF","twitter_site":"@DarioBF","twitter_misc":{"Escrito por":"Dario BF","Tiempo de lectura":"2 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dariobf.com\/ordenar-wp_query-por-valor-de-custom-field\/#article","isPartOf":{"@id":"https:\/\/www.dariobf.com\/ordenar-wp_query-por-valor-de-custom-field\/"},"author":{"name":"Dario BF","@id":"https:\/\/www.dariobf.com\/#\/schema\/person\/b9a59b2eb5a4946e38efd1b89a8158bd"},"headline":"Ordenar WP_Query por valor de custom field","datePublished":"2018-03-19T18:25:46+00:00","dateModified":"2024-09-12T14:48:08+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dariobf.com\/ordenar-wp_query-por-valor-de-custom-field\/"},"wordCount":291,"commentCount":1,"articleSection":["WordPress"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dariobf.com\/ordenar-wp_query-por-valor-de-custom-field\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dariobf.com\/ordenar-wp_query-por-valor-de-custom-field\/","url":"https:\/\/www.dariobf.com\/ordenar-wp_query-por-valor-de-custom-field\/","name":"Ordenar WP_Query por valor de custom field - DarioBF","isPartOf":{"@id":"https:\/\/www.dariobf.com\/#website"},"datePublished":"2018-03-19T18:25:46+00:00","dateModified":"2024-09-12T14:48:08+00:00","author":{"@id":"https:\/\/www.dariobf.com\/#\/schema\/person\/b9a59b2eb5a4946e38efd1b89a8158bd"},"description":"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...","breadcrumb":{"@id":"https:\/\/www.dariobf.com\/ordenar-wp_query-por-valor-de-custom-field\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dariobf.com\/ordenar-wp_query-por-valor-de-custom-field\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dariobf.com\/ordenar-wp_query-por-valor-de-custom-field\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.dariobf.com\/"},{"@type":"ListItem","position":2,"name":"Ordenar WP_Query por valor de custom field"}]},{"@type":"WebSite","@id":"https:\/\/www.dariobf.com\/#website","url":"https:\/\/www.dariobf.com\/","name":"Experto en WordPress - Dario BF","description":"Dise\u00f1ador y desarrollador web especializado en WordPress; Front-end HTML5, CSS3 y Javascript.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dariobf.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.dariobf.com\/#\/schema\/person\/b9a59b2eb5a4946e38efd1b89a8158bd","name":"Dario BF","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g","caption":"Dario BF"},"sameAs":["https:\/\/www.dariobf.com"],"url":"https:\/\/www.dariobf.com\/author\/dbalfer\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts\/3175","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/users\/88919"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/comments?post=3175"}],"version-history":[{"count":0,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts\/3175\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/media?parent=3175"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/categories?post=3175"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/tags?post=3175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":3062,"date":"2018-01-16T13:25:21","date_gmt":"2018-01-16T11:25:21","guid":{"rendered":"https:\/\/www.dariobf.com\/?p=3062"},"modified":"2024-01-11T20:11:35","modified_gmt":"2024-01-11T18:11:35","slug":"nace-bf-labs","status":"publish","type":"post","link":"https:\/\/www.dariobf.com\/nace-bf-labs\/","title":{"rendered":"Nace BF\/Labs"},"content":{"rendered":"<p>Los que me conoc\u00e9is sab\u00e9is que soy inquieto y que me gusta ayudar a otros a formarse para su futuro, transmitir lo que s\u00e9.<\/p>\n<p>Por eso doy un mont\u00f3n de ponencias en diferentes WordCamps (para muestra un bot\u00f3n), hago un <a href=\"https:\/\/www.dariobf.com\/podcast\/\">podcast de dise\u00f1o y desarrollo web<\/a>, o la plataforma de cursos de dise\u00f1o web que tanto tiempo me est\u00e1 llevando (ya un a\u00f1o desde que empec\u00e9 a prepararlo todo&#8230;)<\/p>\n<h2>Qu\u00e9 es BF\/Labs<\/h2>\n<p>Como digo, actualmente tengo el blog con art\u00edculos en formato texto, el podcast en formato audio y los cursos en formato v\u00eddeo; pero los tres formatos tienen una pega&#8230; No tengo interacci\u00f3n directa con la audiencia.<\/p>\n<p>Todo se queda en un n\u00famero, bien de lecturas, escuchas o visualizaciones&#8230; Pero rara vez (por el formato en si) hay feedback, resoluci\u00f3n de dudas o interacci\u00f3n.<\/p>\n<p>Me gustar\u00eda hacer algo diferente y, para ello, he pensado en el \u00e9xito que tienen las ponencias y talleres de las WordCamp.<\/p>\n<p><!--more--><\/p>\n<p>Creo que estas resaltan por varios factores:<\/p>\n<ul>\n<li>Me ten\u00e9is delante, en vivo.<\/li>\n<li>Pod\u00e9is preguntar, en directo.<\/li>\n<li>Quedan grabadas, en <a href=\"https:\/\/wordpress.tv\">WordPress.tv<\/a><\/li>\n<\/ul>\n<h2>En serio, \u00bfQu\u00e9 es BF\/Labs?<\/h2>\n<p>Bueno, ya sabes la intencionalidad, pero no c\u00f3mo lo voy a ejecutar&#8230;<\/p>\n<p>El resumen es que, voy a hacer talleres en directo.<\/p>\n<p>Imagina un directo donde aprendas a crear tu propio Portfolio, o tu tienda online; donde un d\u00eda aprendes qu\u00e9 son los custom post types y c\u00f3mo utilizarlos y configurar tus templates para mostrarlos en el front-end. Todo ello en directo, pudiendo preguntar tus dudas en el momento, recomendando temas para futuros directos y, c\u00f3mo no, siendo part\u00edcipe.<\/p>\n<h2>\u00bfY cu\u00e1nto costar\u00e1?<\/h2>\n<p>No lo s\u00e9, tengo claro que quiero que sea accesible&#8230; y por ello los primeros los har\u00e9 <strong>completamente gratuitos<\/strong>, abiertos a todo el p\u00fablico. No espero muchos espectadores, pero si en esos primeros directos hay buena acogida&#8230; seguir\u00e9 haciendo m\u00e1s.<\/p>\n<p>En el futuro ya ver\u00e9, pero posiblemente haga alg\u00fan directo para subscriptores de pago de m\u00e1s calidad, ense\u00f1ando cosas de nivel.<\/p>\n<h2>Es tu turno y quiero tu opini\u00f3n<\/h2>\n<p>Ahora que ya sabes qu\u00e9 es y c\u00f3mo funcionar\u00e1, me gustar\u00eda que dejes tu comentario diciendo qu\u00e9 te gustar\u00eda ver en el primer directo. Tengo algunas ideas, pero siempre viene bien saber qu\u00e9 necesidades reales ten\u00e9is.<\/p>\n<p>El primer directo lo har\u00e9 el Martes 23 de Enero a las 19:00 y, aparte de explicar Labs, el tema principal me lo reservo, para que haya sorpresa.<\/p>\n<p>S\u00f3lo te queda estar pendiente de <a href=\"https:\/\/twitter.com\/DarioBF\">mi Twitter<\/a> o de este mismo blog para m\u00e1s informaci\u00f3n en el futuro.<\/p>\n<p>\u00bfTe gusta la idea? \u00a1Es importante que dejes un comentario de apoyo para saberlo!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Los que me conoc\u00e9is sab\u00e9is que soy inquieto y que me gusta ayudar a otros a formarse para su futuro, transmitir lo que s\u00e9. Por eso doy un mont\u00f3n de ponencias en diferentes WordCamps (para muestra un bot\u00f3n), hago un podcast de dise\u00f1o y desarrollo web, o la plataforma de cursos de dise\u00f1o web que [&hellip;]<\/p>\n","protected":false},"author":88919,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"episode_type":"","audio_file":"","podmotor_file_id":"","podmotor_episode_id":"","cover_image":"","cover_image_id":"","duration":"","filesize":"","filesize_raw":"","date_recorded":"","explicit":"","block":"","itunes_episode_number":"","itunes_title":"","itunes_season_number":"","itunes_episode_type":"","footnotes":""},"categories":[281],"tags":[],"class_list":["post-3062","post","type-post","status-publish","format-standard","hentry","category-personal"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Nace BF\/Labs - DarioBF<\/title>\n<meta name=\"description\" content=\"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dariobf.com\/nace-bf-labs\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Nace BF\/Labs - DarioBF\" \/>\n<meta property=\"og:description\" content=\"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dariobf.com\/nace-bf-labs\/\" \/>\n<meta property=\"og:site_name\" content=\"Experto en WordPress - Dario BF\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/dariobf\" \/>\n<meta property=\"article:published_time\" content=\"2018-01-16T11:25:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-01-11T18:11:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dariobf.com\/wp-content\/uploads\/2016\/04\/opengraph_thumb.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Dario BF\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DarioBF\" \/>\n<meta name=\"twitter:site\" content=\"@DarioBF\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dario BF\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/nace-bf-labs\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/nace-bf-labs\\\/\"},\"author\":{\"name\":\"Dario BF\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#\\\/schema\\\/person\\\/b9a59b2eb5a4946e38efd1b89a8158bd\"},\"headline\":\"Nace BF\\\/Labs\",\"datePublished\":\"2018-01-16T11:25:21+00:00\",\"dateModified\":\"2024-01-11T18:11:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/nace-bf-labs\\\/\"},\"wordCount\":468,\"commentCount\":22,\"articleSection\":[\"Personal\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dariobf.com\\\/nace-bf-labs\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/nace-bf-labs\\\/\",\"url\":\"https:\\\/\\\/www.dariobf.com\\\/nace-bf-labs\\\/\",\"name\":\"Nace BF\\\/Labs - DarioBF\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#website\"},\"datePublished\":\"2018-01-16T11:25:21+00:00\",\"dateModified\":\"2024-01-11T18:11:35+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#\\\/schema\\\/person\\\/b9a59b2eb5a4946e38efd1b89a8158bd\"},\"description\":\"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/nace-bf-labs\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dariobf.com\\\/nace-bf-labs\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/nace-bf-labs\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/www.dariobf.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Nace BF\\\/Labs\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#website\",\"url\":\"https:\\\/\\\/www.dariobf.com\\\/\",\"name\":\"Experto en WordPress - Dario BF\",\"description\":\"Dise\u00f1ador y desarrollador web especializado en WordPress; Front-end HTML5, CSS3 y Javascript.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dariobf.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dariobf.com\\\/#\\\/schema\\\/person\\\/b9a59b2eb5a4946e38efd1b89a8158bd\",\"name\":\"Dario BF\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g\",\"caption\":\"Dario BF\"},\"sameAs\":[\"https:\\\/\\\/www.dariobf.com\"],\"url\":\"https:\\\/\\\/www.dariobf.com\\\/author\\\/dbalfer\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Nace BF\/Labs - DarioBF","description":"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dariobf.com\/nace-bf-labs\/","og_locale":"es_ES","og_type":"article","og_title":"Nace BF\/Labs - DarioBF","og_description":"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...","og_url":"https:\/\/www.dariobf.com\/nace-bf-labs\/","og_site_name":"Experto en WordPress - Dario BF","article_publisher":"https:\/\/facebook.com\/dariobf","article_published_time":"2018-01-16T11:25:21+00:00","article_modified_time":"2024-01-11T18:11:35+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.dariobf.com\/wp-content\/uploads\/2016\/04\/opengraph_thumb.jpg","type":"image\/jpeg"}],"author":"Dario BF","twitter_card":"summary_large_image","twitter_creator":"@DarioBF","twitter_site":"@DarioBF","twitter_misc":{"Escrito por":"Dario BF","Tiempo de lectura":"2 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dariobf.com\/nace-bf-labs\/#article","isPartOf":{"@id":"https:\/\/www.dariobf.com\/nace-bf-labs\/"},"author":{"name":"Dario BF","@id":"https:\/\/www.dariobf.com\/#\/schema\/person\/b9a59b2eb5a4946e38efd1b89a8158bd"},"headline":"Nace BF\/Labs","datePublished":"2018-01-16T11:25:21+00:00","dateModified":"2024-01-11T18:11:35+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dariobf.com\/nace-bf-labs\/"},"wordCount":468,"commentCount":22,"articleSection":["Personal"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dariobf.com\/nace-bf-labs\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dariobf.com\/nace-bf-labs\/","url":"https:\/\/www.dariobf.com\/nace-bf-labs\/","name":"Nace BF\/Labs - DarioBF","isPartOf":{"@id":"https:\/\/www.dariobf.com\/#website"},"datePublished":"2018-01-16T11:25:21+00:00","dateModified":"2024-01-11T18:11:35+00:00","author":{"@id":"https:\/\/www.dariobf.com\/#\/schema\/person\/b9a59b2eb5a4946e38efd1b89a8158bd"},"description":"Blog sobre dise\u00f1o y desarrollo web escrito por DarioBF, experto en WordPress. Tutoriales, consejos, buenas pr\u00e1cticas...","breadcrumb":{"@id":"https:\/\/www.dariobf.com\/nace-bf-labs\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dariobf.com\/nace-bf-labs\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dariobf.com\/nace-bf-labs\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.dariobf.com\/"},{"@type":"ListItem","position":2,"name":"Nace BF\/Labs"}]},{"@type":"WebSite","@id":"https:\/\/www.dariobf.com\/#website","url":"https:\/\/www.dariobf.com\/","name":"Experto en WordPress - Dario BF","description":"Dise\u00f1ador y desarrollador web especializado en WordPress; Front-end HTML5, CSS3 y Javascript.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dariobf.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.dariobf.com\/#\/schema\/person\/b9a59b2eb5a4946e38efd1b89a8158bd","name":"Dario BF","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/34b8d9e7003d5e2d8b8d300dc0e0944f5ddf3c55ab5ef20fa87b054eec2ccedf?s=96&d=mm&r=g","caption":"Dario BF"},"sameAs":["https:\/\/www.dariobf.com"],"url":"https:\/\/www.dariobf.com\/author\/dbalfer\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts\/3062","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/users\/88919"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/comments?post=3062"}],"version-history":[{"count":0,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/posts\/3062\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/media?parent=3062"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/categories?post=3062"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dariobf.com\/wp-json\/wp\/v2\/tags?post=3062"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}]