Avisos
Vaciar todo

Datos estructurados  

 
RAFAEL
 RAFAEL
Honorable Member

Hola, 

He publicado la nueva web y ahora me ha aparecido un aviso de problemas con los datos estructurados y que tengo que especificar "offers", "review" o "aggregateRating" en los productos de la tienda. 

¿Hay forma de hacerlo?

Gracias

Contenido solo visible a usuarios registrados

Citar
Respondido : 28/04/2024 7:35 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Rafael.

Los datos Review y aggregateRating son opcionales, no afectan paar el SEO, de todas formas puedes probar añadiendo lo siguiente en el al plugin de Fragmentos de codigo:

add_filter( 'wpseo_json_ld_output', 'agregar_datos_estructurados_producto_yoastseo', 10, 1 );
function agregar_datos_estructurados_producto_yoastseo( $data ) {
// Verificar si estamos en la página de un producto de WooCommerce
if ( is_product() ) {
global $product;

// Obtener información del producto
$product_id = $product->get_id();
$product_name = $product->get_name();
$product_description = $product->get_description();
$product_sku = $product->get_sku();
$product_price = $product->get_price();
$product_url = get_permalink( $product_id );
$product_image = wp_get_attachment_image_src( get_post_thumbnail_id( $product_id ), 'full' );

// Obtener las revisiones del producto
$reviews = get_comments( array(
'post_id' => $product_id,
'status' => 'approve',
'type' => 'review'
) );

// Calcular la calificación promedio
$rating_total = 0;
foreach ( $reviews as $review ) {
$rating = get_comment_meta( $review->comment_ID, 'rating', true );
$rating_total += $rating;
}
$rating_average = count( $reviews ) > 0 ? $rating_total / count( $reviews ) : 0;

// Construir el array de datos estructurados
$product_data = array(
'@context' => 'http://schema.org/',
'@type' => 'Product',
'name' => $product_name,
'description' => $product_description,
'sku' => $product_sku,
'offers' => array(
'@type' => 'Offer',
'price' => $product_price,
'priceCurrency' => get_woocommerce_currency(),
'availability' => 'http://schema.org/InStock',
'url' => $product_url
),
'image' => array(
'@type' => 'ImageObject',
'url' => $product_image[0],
'width' => $product_image[1],
'height' => $product_image[2]
),
'review' => array(
'@type' => 'Review',
'aggregateRating' => array(
'@type' => 'AggregateRating',
'ratingValue' => $rating_average,
'reviewCount' => count( $reviews )
)
)
);

// Agregar los datos estructurados al array de datos de Yoast SEO
$data['@graph'][] = $product_data;
}

return $data;
}


Un. saludo

ResponderCitar
Respondido : 28/04/2024 12:16 pm

Cursos Gratuitos WordPress

RAFAEL
 RAFAEL
Honorable Member

@pepesoler Hola, 

¿Debo ponerlo como php o html? Al copiarlo en php, aparecen fragmentos en color rojo ¿es correcto?

image

Gracias

ResponderCitar
Respondido : 28/04/2024 6:41 pm
Bruno
 Bruno
Soporte CMS Webempresa Moderator

Que tal Rafael,

¿Debo ponerlo como php o html?

El fragmento de codigo compartido por mi compañero es un filtro con una funcion en PHP

Al copiarlo en php, aparecen fragmentos en color rojo ¿es correcto?

Si estas utilizando para gestionar los fragmentos de código un plugin como Code snippets, esta es la forma en la que marca la diferencia de algunos elementos, mas no es un error

Saludos!

ResponderCitar
Respondido : 28/04/2024 7:04 pm

RAFAEL
 RAFAEL
Honorable Member

@bruno-vichetti Gracias

ResponderCitar
Respondido : 29/04/2024 12:16 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Rafael.

Nada, gracias a ti.

Dejo el hilo abierto por si necesitas retomarlo.

 

Un Saludo

ResponderCitar
Respondido : 29/04/2024 1:00 pm

wpdoctor-revisa-la-salud-de-tu-wordpress