¿Cómo aplicar automáticamente el título del producto de WooCommerce a todas las etiquetas alt de las imágenes del producto?
Agregar información de etiquetas alt a cada foto de producto es mucho trabajo. Siempre terminamos copiando y pegando el título del producto en las etiquetas alt de las imágenes.
Me imaginé que, dado que toda la información ya está allí, debe haber una manera de hacer esto automáticamente.
Pregunta: ¿Cómo se puede aplicar el TÍTULO de un producto de WooCommerce como ETIQUETAS ALT para todas las imágenes utilizadas con ese producto?
¡Cualquier ayuda es muy apreciada!
// Agregar este código en functions.php
add_action('woocommerce_after_add_to_cart_form', 'apply_product_title_to_images');
function apply_product_title_to_images() {
global $product;
// Obtener todas las imágenes del producto
$attachment_ids = $product->get_gallery_image_ids();
$main_image_id = $product->get_image_id();
// Aplicar el título del producto como alt tag a la imagen principal
if ($main_image_id) {
update_post_meta($main_image_id, '_wp_attachment_image_alt', $product->get_title());
}
// Aplicar el título del producto como alt tag a las imágenes de la galería
foreach ($attachment_ids as $attachment_id) {
update_post_meta($attachment_id, '_wp_attachment_image_alt', $product->get_title());
}
}

Esto es lo que necesitas, tomado de - https://stackoverflow.com/questions/27087772/how-can-i-change-meta-alt-and-title-in-catalog-thumbnail-product-thumbnail
add_filter('wp_get_attachment_image_attributes', 'change_attachement_image_attributes', 20, 2);
function change_attachement_image_attributes( $attr, $attachment ){
// Obtener el post padre
$parent = get_post_field( 'post_parent', $attachment);
// Obtener el tipo de post para verificar si es un producto
$type = get_post_field( 'post_type', $parent);
if( $type != 'product' ){
return $attr;
}
/// Obtener el título
$title = get_post_field( 'post_title', $parent);
$attr['alt'] = $title;
$attr['title'] = $title;
return $attr;
}

Para aquellos que estén buscando, recomendaría editar el código anterior para que si una imagen de producto ya tiene una etiqueta alt, no se sobrescriba con el título de la publicación. De esta manera, aún puedes añadir títulos a las imágenes de producto si es necesario.
add_filter('wp_get_attachment_image_attributes', 'change_attachement_image_attributes', 20, 2);
function change_attachement_image_attributes( $attr, $attachment ) {
// Obtener el post padre
$parent = get_post_field( 'post_parent', $attachment);
// Obtener el tipo de post para verificar si es un producto
$type = get_post_field( 'post_type', $parent);
if( $type != 'product' ){
return $attr;
}
/// Obtener el título
$title = get_post_field( 'post_title', $parent);
if( $attr['alt'] == ''){
$attr['alt'] = $title;
$attr['title'] = $title;
}
return $attr;
}

Si alguien está buscando una forma rápida y sencilla de usar los títulos de productos como etiquetas ALT para las imágenes de productos, recomiendo el plugin Woo Image SEO.
Este plugin también puede encargarse de la creación de atributos de título (title attributes).
Además, puedes personalizar los atributos incluyendo la categoría y las etiquetas del producto en cualquier orden.
