{"id":2520,"date":"2020-02-15T07:32:00","date_gmt":"2020-02-15T06:32:00","guid":{"rendered":"https:\/\/davidperezgar.com\/?p=2520"},"modified":"2020-02-15T19:17:21","modified_gmt":"2020-02-15T18:17:21","slug":"wordcamp-chiclana-2020-crea-schemas-sin-plugins","status":"publish","type":"post","link":"https:\/\/davidperezgar.com\/en\/blog\/talks\/wordcamp-chiclana-2020-crea-schemas-sin-plugins\/","title":{"rendered":"Charla WordCamp Chiclana: Crea Schemas sin plugins en WordPress"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Este es un resumen de mi charla que he realizado en <a href=\"https:\/\/2020.chiclana.wordcamp.org\/session\/crea-schemas-seo-sin-plugins\/\" target=\"_blank\" rel=\"noopener\">WordCamp Chiclana 2020<\/a>, que desde aqu\u00ed agradezco su confianza para contar conmigo como ponente.<\/p>\n\n\n\n<iframe loading=\"lazy\" src=\"\/\/www.slideshare.net\/slideshow\/embed_code\/key\/C1JH6vwHwX2CEP\" width=\"595\" height=\"485\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" allowfullscreen=\"\"> <\/iframe> <div style=\"margin-bottom:5px\"> <strong> <a href=\"\/\/www.slideshare.net\/secret\/C1JH6vwHwX2CEP\" title=\"WordCamp Chiclana 2020 Crea schemas sin plugins\" target=\"_blank\" rel=\"noopener noreferrer\">WordCamp Chiclana 2020 Crea schemas sin plugins<\/a> <\/strong> from <strong><a href=\"https:\/\/www.slideshare.net\/closemarketing\" target=\"_blank\" rel=\"noopener noreferrer\">Closemarketing<\/a><\/strong> <\/div>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-white ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Tabla de contenidos<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-69fa2b49bf197\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-69fa2b49bf197\"  aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/davidperezgar.com\/en\/blog\/talks\/wordcamp-chiclana-2020-crea-schemas-sin-plugins\/#%C2%BFQue_son_los_Schemas\" >\u00bfQu\u00e9 son los Schemas?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/davidperezgar.com\/en\/blog\/talks\/wordcamp-chiclana-2020-crea-schemas-sin-plugins\/#Tipos_de_Schemas\" >Tipos de Schemas<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/davidperezgar.com\/en\/blog\/talks\/wordcamp-chiclana-2020-crea-schemas-sin-plugins\/#Ejemplo_Schema_para_Recetas\" >Ejemplo Schema para Recetas<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/davidperezgar.com\/en\/blog\/talks\/wordcamp-chiclana-2020-crea-schemas-sin-plugins\/#Ejemplo_Esquema_Organizacion\" >Ejemplo Esquema Organizaci\u00f3n<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/davidperezgar.com\/en\/blog\/talks\/wordcamp-chiclana-2020-crea-schemas-sin-plugins\/#Ejemplo_Esquema_Cursos\" >Ejemplo Esquema Cursos<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%C2%BFQue_son_los_Schemas\"><\/span>\u00bfQu\u00e9 son los Schemas?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Conjunto de etiquetas para describir nuestro contenido.<\/li><li>Ofrece sem\u00e1ntica enriquecida para los buscadores.<\/li><li>Ayuda a entender y clasificar la informaci\u00f3n.<\/li><li>Podr\u00e1 aparecer destacado en el buscador.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Tipos_de_Schemas\"><\/span>Tipos de Schemas<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">En la <a href=\"https:\/\/schema.org\/docs\/full.html\" target=\"_blank\" rel=\"noopener\">p\u00e1gina de Schema.org<\/a>, ofrece la jerarqu\u00eda total de todos los esquemas creados, siendo los de primer nivel los siguientes:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Action.<\/strong> Acci\u00f3n realizada por un agente directo o indirecto sobre un objeto directo.<\/li><li><strong>CreativeWork.<\/strong> El tipo m\u00e1s gen\u00e9rico para especificar un trabajo creativo, que incluye libros, pel\u00edculas, fotograf\u00edas, programas de software, etc.<\/li><li><strong>Event.<\/strong> Un evento que ocurre en un determinado tiempo y localizaci\u00f3n, tal como un concierto, clase o festival. La informaci\u00f3n de las entradas se puede realizar utilizando la propiedad ofertas. Los eventos repetitivos deber\u00e1n estructurarse como objetos de eventos separados.<\/li><li><strong>Intangible.<\/strong> Una clase \u00fatil que sirve de paraguas para cosas intangibles como cantidades, valores estructurados, etc.<\/li><li><strong>MedicalEntity.<\/strong> El tipo gen\u00e9rico de la entidad relacionada con la salud y la pr\u00e1ctica de la medicina.<\/li><li><strong>Organization.<\/strong> Una organizaci\u00f3n como un colegio, ONG, corporaci\u00f3n, club, etc.<\/li><li><strong>Person.<\/strong> Una persona (viva, muerta, &#8220;no muerta&#8221;, o ficticia).<\/li><li><strong>Place.<\/strong> Entidades que est\u00e1n de alguna manera fijas, con un sitio fijo.<\/li><li><strong>Product.<\/strong> Un producto o servicio ofertado. Por ejemplo: un par de zapatos, una entrada de concierto, alquiler de coches, un corte de pelo, o un episodio de una serie en streaming online.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Nos ofrece un total de <strong>1022<\/strong> esquemas diferentes, por lo que podemos darnos cuenta de la versatilidad para utilizar dichos esquemas.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Ejemplo_Schema_para_Recetas\"><\/span>Ejemplo Schema para Recetas<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php line-numbers\">add_action( 'wp_head', 'cmk_add_schema_pages', 20 );\n\/**\n * Shows Schema depeding of post type in header with LD JSON\n *\n * @return void\n *\/\nfunction cmk_add_schema_pages() {\n      $post_id      = get_the_ID();\n      $cook_time    = get_post_meta( $post_id, 'rec_tiempo', true );\n      $prep_time    = get_post_meta( $post_id, 'rec_tiempo', true );\n      $ingredients  = get_post_meta( $post_id, 'rec_ingredient', false );\n      $recipe_inst  = wp_strip_all_tags( get_post_meta( $post_id, 'rec_preparacion', true ) );\n      $recipe_yield = get_post_meta( $post_id, 'rec_personas', true );\n\n      if ( is_singular( 'receta' ) ) {\n            $sch = '\n&lt;script type=\"application\/ld+json\"> \n      {\n            \"@context\": \"http:\/\/schema.org\",\n            \"@type\": \"Recipe\",\n            \"author\": \"David Perez\",\n            \"cookTime\": \"PT' . $cook_time . 'M\",\n            \"datePublished\": \"2009-05-08\",\n            \"description\": \" ' . get_the_excerpt() . '\",\n            \"image\": \"' . get_the_post_thumbnail_url() . '\",\n            \"recipeIngredient\": [';\n            if ( is_array( $ingredients ) ) {\n                  foreach ( $ingredients[0] as $ingredient ) {\n                        $sch .= '\" ' . $ingredient . '\",';\n                  }\n            }\n            $sch .= '],\n            \"prepTime\": \"' . $prep_time . '\",\n            \"recipeInstructions\": \"' . $recipe_inst . '\",\n            \"recipeYield\": \"' . $recipe_yield . ' persons\",\n            \"suitableForDiet\": \"http:\/\/schema.org\/LowFatDiet\"\n      }\n&lt;\/script>';\n\n            echo $sch;\n      } \/\/ Recipe schema\n}\n<\/code><\/pre><\/div>\n\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-preformatted\"><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Ejemplo_Esquema_Organizacion\"><\/span>Ejemplo Esquema Organizaci\u00f3n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php line-numbers\">add_action( 'wp_head', 'cmk_add_schema_home_page', 20 );\n\/**\n * Shows Schema depeding of post type home_page in header with LD JSON\n *\n * @return void\n *\/\nfunction cmk_add_schema_home_page() {\n\n      if ( is_front_page() || is_home() ) {\n            $sch = '\n&lt;script type=\"application\/ld+json\">\n{\n  \"@context\": \"http:\/\/schema.org\",\n  \"@type\": \"Organization\",\n  \"address\": {\n    \"@type\": \"PostalAddress\",\n    \"addressLocality\": \"Granada, Espa\u00f1a\",\n    \"postalCode\": \"18006\",\n    \"streetAddress\": \"Calle Jose Luis P\u00e9rez Pujadas, 6 Edificio Forum Oficina B29\"\n  },\n  \"email\": \"info@closemarketing.es\",\n  \"url\": \"https:\/\/www.closemarketing.es\/\",\n  \"description\": \"Agencia de Marketing Online, Dise\u00f1amos Web en WordPress para Granada y M\u00e1laga.\",\n  \"taxID\": \"ESB19618909\",\n  \"employee\": [\n    {\n      \"@type\": \"Person\",\n      \"name\": \"David P\u00e9rez\"\n    },\n    {\n      \"@type\": \"Person\",\n      \"name\": \"Sacra J\u00e1imez\"\n    }\n  ],\n  \"member\": [\n      {\n            \"@type\": \"Organization\",\n            \"name\": \"AJE Granada\"\n      },\n      {\n            \"@type\": \"Organization\",\n            \"name\": \"WordPress Granada\"\n      }\n    ],\n  \"name\": \"Closemarketing\",\n  \"telephone\": \"+34858958383\"\n}\n&lt;\/script>';\n            echo $sch;\n      } \/\/ home_page schema\n}\n<\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Ejemplo_Esquema_Cursos\"><\/span>Ejemplo Esquema Cursos<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php line-numbers\">add_action( 'wp_head', 'cmk_add_schema_courses', 20 );\n\/**\n * Shows Schema depeding of post type in header with LD JSON\n *\n * @return void\n *\/\nfunction cmk_add_schema_courses() {\n      if ( is_singular( 'formacion' ) ) {\n            $post_id   = get_the_ID();\n            $price_raw = get_post_meta( $post_id, '_listing_price', true );\n            $time_raw  = get_post_meta( $post_id, 'for_dura', true );\n            $time      = substr_replace( $time_raw, '', -1 );\n            if ( date( m ) > 6 ) {\n                  $year_start = date( 'Y' );\n                  $year_end   = date( 'Y' ) + 1;\n            } else {\n                  $year_start = date( 'Y' ) - 1;\n                  $year_end   = date( 'Y' );\n            }\n            $start_date = $year_start . '-09-01';\n            $end_date   = $year_end . '-06-20';\n            $sch        = '&lt;script type=\"application\/ld+json\">\n{\n  \"@context\": \"http:\/\/schema.org\/\",\n  \"@id\": \".\/\",\n  \"@type\": \"Course\",\n  \"name\": \"' . get_the_title( $post_id ) . '\",\n  \"description\": \"' . get_the_excerpt( $post_id ) . '\",\n  \"hasCourseInstance\": [\n    {\n      \"@type\": \"CourseInstance\",\n      \"name\": \"' . get_the_title( $post_id ) . '\",\n      \"location\": {\n            \"@type\": \"Place\",\n            \"address\": {\n              \"@type\": \"PostalAddress\",\n              \"addressLocality\": \"Granada\",\n              \"addressRegion\": \"ESP\"\n            }\n      },\n      \"description\": \"' . get_the_excerpt( $post_id ) . '\",\n      \"startDate\": \"' . $start_date . '\",\n      \"startDate\": \"' . $end_date . '\",\n      \"timeRequired\": \"' . $time . '\",\n      \"about\": \"' . get_post_meta( $post_id, 'for_ncursos', true ) . '\"\n    }\n  ]\n}\n&lt;\/script>';\n\n            echo $sch;\n      } \/\/ Course schema\n}\n<\/code><\/pre><\/div>\n","protected":false},"excerpt":{"rendered":"<p>M\u00e9todo para realizar Schemas en tu p\u00e1gina web realizada en WordPress. Es el resumen de una charla realizada en la WordCamp Chiclana 2020.<\/p>\n","protected":false},"author":1,"featured_media":2567,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","inline_featured_image":false,"_ayudawp_aiss_exclude":false,"webmentions_disabled_pings":false,"webmentions_disabled":false,"editor_notices":[],"footnotes":""},"categories":[169],"tags":[],"class_list":["post-2520","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-talks","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-50"],"_links":{"self":[{"href":"https:\/\/davidperezgar.com\/en\/wp-json\/wp\/v2\/posts\/2520","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/davidperezgar.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/davidperezgar.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/davidperezgar.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/davidperezgar.com\/en\/wp-json\/wp\/v2\/comments?post=2520"}],"version-history":[{"count":0,"href":"https:\/\/davidperezgar.com\/en\/wp-json\/wp\/v2\/posts\/2520\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/davidperezgar.com\/en\/wp-json\/wp\/v2\/media\/2567"}],"wp:attachment":[{"href":"https:\/\/davidperezgar.com\/en\/wp-json\/wp\/v2\/media?parent=2520"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/davidperezgar.com\/en\/wp-json\/wp\/v2\/categories?post=2520"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/davidperezgar.com\/en\/wp-json\/wp\/v2\/tags?post=2520"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}