title и alt из заголовка записи
Мы можем сделать, чтобы у миниатюры записи (когда мы внутри записи) title и alt прописывались из заголовка записи динамически. Для этого, добавляем следующий сниппет в functions.php
function titles_gallery($attr){
if ( is_single() ) {
$title = get_the_title();
$attr['title'] = trim(strip_tags( $title ));
$attr['alt'] = trim(strip_tags( $title ));
}
return $attr;
}
add_filter('wp_get_attachment_image_attributes','titles_gallery',10,2);
При использовании функции логотип темы (custom_logo) изображение логотипа принимает свойства миниатюры и в него могут подставится те же alt и title, это неправильно! Нужно изменить вывод логотипа:
<div id="logo"><a href="<?php echo get_site_url(); ?>">
<?php $custom_logo_id = get_theme_mod( 'custom_logo' );
$image = wp_get_attachment_image_src( $custom_logo_id , 'full' ); ?>
<img src="<?php echo $image[0]; ?>" alt="site-logo" title="site-logo">
</a></div>
Микроразметка миниатюры
Добавление миниатюре атрибута itemprop=»image»
if ( !is_admin() ) {
add_filter( 'wp_get_attachment_image_attributes', 'alter_att_attributes_wpse');
function alter_att_attributes_wpse($attr) {
$attr['itemprop'] = 'image';
return $attr;
}
}
Размеры миниатюры
add_filter( 'wp_get_attachment_image_attributes', 'alter_att_attributes_wpse');
function alter_att_attributes_wpse($attr) {
$attr['srcset'] = ' '; // !Отключение вывода вариаций изображения
return $attr;
}
Можно делать комбинацию атрибутов title и alt + itemprop и т.д. в одной функции
title и alt товара woocommerce
Добавить динамический alt и title в виде заголовка товара изображениям товаров в категории — используем следующую функцию:
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;
}
Эта функция добавляет атрибуты и в шаблоне карточки товара