Как я могу позволить woocommerce установить название продукта в качестве заголовка изображения продукта и alt? - PullRequest
1 голос
/ 10 мая 2019

Проведя некоторое исследование, я обнаружил, что заголовки изображений и т.п. имеют большое значение для SEO, и изменение каждого заголовка изображения и альт займет слишком много времени.

Я нашел этот код здесь, но он не влиял на текущие изображения.

add_filter('wp_get_attachment_image_attributes', 'change_attachement_image_attributes', 20, 2);

function change_attachement_image_attributes( $attr, $attachment ){
    // Get post parent
    $parent = get_post_field( 'post_parent', $attachment);

    // Get post type to check if it's product
    $type = get_post_field( 'post_type', $parent);
    if( $type != 'product' ){
        return $attr;
    }

    /// Get title
    $title = get_post_field( 'post_title', $parent);

    $attr['alt'] = $title;
    $attr['title'] = $title;

    return $attr;
}

Ответы [ 2 ]

0 голосов
/ 10 мая 2019

Войдите в свой Phpmyadmin, выберите базу данных и выполните этот запрос, чтобы обновить заголовки изображений:

UPDATE wp_posts as a
LEFT JOIN wp_postmeta as b ON a.ID = b.meta_value
LEFT JOIN wp_posts as c ON b.post_id = c.ID
SET a.post_title = c.post_title
WHERE a.post_type = 'attachment'
AND a.post_mime_type = 'image/jpeg'
AND b.meta_key = '_thumbnail_id'
AND c.post_type = 'product'

... и этот запрос SQL для обновления изображений alts:

UPDATE wp_postmeta as z 
LEFT JOIN wp_posts as a ON z.post_id = a.ID 
LEFT JOIN wp_postmeta as b ON a.ID = b.meta_value 
LEFT JOIN wp_posts as c ON b.post_id = c.ID 
SET z.meta_value = c.post_title 
WHERE z.meta_key = '_wp_attachment_image_alt' 
AND a.post_type = 'attachment' 
AND a.post_mime_type = 'image/jpeg' 
AND b.meta_key = '_thumbnail_id' 
AND c.post_type = 'product'
0 голосов
/ 10 мая 2019

Вы можете попробовать woocommerce_gallery_image_html_attachment_image_params фильтр для настройки. Проверьте следующий пример. Он выбирает название продукта и присваивает его атрибутам alt и title изображения. Примечание. Это работает только на одной странице продукта.

add_filter( 'woocommerce_gallery_image_html_attachment_image_params','wpso_customize_single_product_image' );

function wpso_customize_single_product_image( $details ) {
    global $product;
    $details['alt'] = $details['title'] = get_the_title( $product->get_id() );
    return $details;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...