Este es un resumen de mi charla que he realizado en WordCamp Chiclana 2020, que desde aquí agradezco su confianza para contar conmigo como ponente.
Tabla de contenidos
¿Qué son los Schemas?
- Conjunto de etiquetas para describir nuestro contenido.
- Ofrece semántica enriquecida para los buscadores.
- Ayuda a entender y clasificar la información.
- Podrá aparecer destacado en el buscador.
Tipos de Schemas
En la página de Schema.org, ofrece la jerarquía total de todos los esquemas creados, siendo los de primer nivel los siguientes:
- Action. Acción realizada por un agente directo o indirecto sobre un objeto directo.
- CreativeWork. El tipo más genérico para especificar un trabajo creativo, que incluye libros, películas, fotografías, programas de software, etc.
- Event. Un evento que ocurre en un determinado tiempo y localización, tal como un concierto, clase o festival. La información de las entradas se puede realizar utilizando la propiedad ofertas. Los eventos repetitivos deberán estructurarse como objetos de eventos separados.
- Intangible. Una clase útil que sirve de paraguas para cosas intangibles como cantidades, valores estructurados, etc.
- MedicalEntity. El tipo genérico de la entidad relacionada con la salud y la práctica de la medicina.
- Organization. Una organización como un colegio, ONG, corporación, club, etc.
- Person. Una persona (viva, muerta, “no muerta”, o ficticia).
- Place. Entidades que están de alguna manera fijas, con un sitio fijo.
- Product. 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.
Nos ofrece un total de 1022 esquemas diferentes, por lo que podemos darnos cuenta de la versatilidad para utilizar dichos esquemas.
Ejemplo Schema para Recetas
add_action( 'wp_head', 'cmk_add_schema_pages', 20 );
/**
* Shows Schema depeding of post type in header with LD JSON
*
* @return void
*/
function cmk_add_schema_pages() {
$post_id = get_the_ID();
$cook_time = get_post_meta( $post_id, 'rec_tiempo', true );
$prep_time = get_post_meta( $post_id, 'rec_tiempo', true );
$ingredients = get_post_meta( $post_id, 'rec_ingredient', false );
$recipe_inst = wp_strip_all_tags( get_post_meta( $post_id, 'rec_preparacion', true ) );
$recipe_yield = get_post_meta( $post_id, 'rec_personas', true );
if ( is_singular( 'receta' ) ) {
$sch = '
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Recipe",
"author": "David Perez",
"cookTime": "PT' . $cook_time . 'M",
"datePublished": "2009-05-08",
"description": " ' . get_the_excerpt() . '",
"image": "' . get_the_post_thumbnail_url() . '",
"recipeIngredient": [';
if ( is_array( $ingredients ) ) {
foreach ( $ingredients[0] as $ingredient ) {
$sch .= '" ' . $ingredient . '",';
}
}
$sch .= '],
"prepTime": "' . $prep_time . '",
"recipeInstructions": "' . $recipe_inst . '",
"recipeYield": "' . $recipe_yield . ' persons",
"suitableForDiet": "http://schema.org/LowFatDiet"
}
</script>';
echo $sch;
} // Recipe schema
}
Ejemplo Esquema Organización
add_action( 'wp_head', 'cmk_add_schema_home_page', 20 );
/**
* Shows Schema depeding of post type home_page in header with LD JSON
*
* @return void
*/
function cmk_add_schema_home_page() {
if ( is_front_page() || is_home() ) {
$sch = '
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Organization",
"address": {
"@type": "PostalAddress",
"addressLocality": "Granada, España",
"postalCode": "18006",
"streetAddress": "Calle Jose Luis Pérez Pujadas, 6 Edificio Forum Oficina B29"
},
"email": "info@closemarketing.es",
"url": "https://www.closemarketing.es/",
"description": "Agencia de Marketing Online, Diseñamos Web en WordPress para Granada y Málaga.",
"taxID": "ESB19618909",
"employee": [
{
"@type": "Person",
"name": "David Pérez"
},
{
"@type": "Person",
"name": "Sacra Jáimez"
}
],
"member": [
{
"@type": "Organization",
"name": "AJE Granada"
},
{
"@type": "Organization",
"name": "WordPress Granada"
}
],
"name": "Closemarketing",
"telephone": "+34858958383"
}
</script>';
echo $sch;
} // home_page schema
}
Ejemplo Esquema Cursos
add_action( 'wp_head', 'cmk_add_schema_courses', 20 );
/**
* Shows Schema depeding of post type in header with LD JSON
*
* @return void
*/
function cmk_add_schema_courses() {
if ( is_singular( 'formacion' ) ) {
$post_id = get_the_ID();
$price_raw = get_post_meta( $post_id, '_listing_price', true );
$time_raw = get_post_meta( $post_id, 'for_dura', true );
$time = substr_replace( $time_raw, '', -1 );
if ( date( m ) > 6 ) {
$year_start = date( 'Y' );
$year_end = date( 'Y' ) + 1;
} else {
$year_start = date( 'Y' ) - 1;
$year_end = date( 'Y' );
}
$start_date = $year_start . '-09-01';
$end_date = $year_end . '-06-20';
$sch = '<script type="application/ld+json">
{
"@context": "http://schema.org/",
"@id": "./",
"@type": "Course",
"name": "' . get_the_title( $post_id ) . '",
"description": "' . get_the_excerpt( $post_id ) . '",
"hasCourseInstance": [
{
"@type": "CourseInstance",
"name": "' . get_the_title( $post_id ) . '",
"location": {
"@type": "Place",
"address": {
"@type": "PostalAddress",
"addressLocality": "Granada",
"addressRegion": "ESP"
}
},
"description": "' . get_the_excerpt( $post_id ) . '",
"startDate": "' . $start_date . '",
"startDate": "' . $end_date . '",
"timeRequired": "' . $time . '",
"about": "' . get_post_meta( $post_id, 'for_ncursos', true ) . '"
}
]
}
</script>';
echo $sch;
} // Course schema
}
Leave a Reply