Здравствуйте, уважаемы форумчане! Возникла у меня задача вывести в галерее одиночного товара alt у картинки товара виде "Название товара + Фото(х)", где x - номер картинки в галерее товара. Сайт на Woocommerce.
Название я вывел, в принципе, быстро
add_filter('wp_get_attachment_image_attributes', 'change_attachement_image_attributes', 20, 2);
function change_attachement_image_attributes($attr, $attachment) {
global $post;
if ($post->post_type == 'product') {
$num = "Номер картинки";
$title = $post->post_title;
$attr['alt'] = sprintf(" %s Фото - %s.",$title,$num);
$attr['title'] = $title;
}
return $attr;
}
Все вроде работает и выводит
Вопрос в чем - как вывести вместо $num = "Номер картинки"; Именно номер картинки галереи (1, 2, 3 и т.д в зависимости от количества картинок в галерее товара). Копал на
<a href="https://codex.wordpress.org/%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_%D0%BF%D0%BE_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F%D0%BC/get_post"></a>
, но там в списке возвращаемых полей для нужного мне результата ничего не нашел. Подскажите, пожалуйста, все мозги уже сломал.
UPD 7.02.19
Спасибо огромное Пычеву Анатолию!
Про статическую функцию я и не подумал, городил огромные конструкции с вызовом id картинки и т.д. А все оказалось так просто!
Окончательный вариант кода получился таким
add_filter('wp_get_attachment_image_attributes', 'change_attachement_image_attributes', 20, 2);
function change_attachement_image_attributes($attr, $attachment) {
global $post;
if ($post->post_type == 'product') {
$title = $post->post_title;
static $num = 0;
$num++;
$attr['alt'] = sprintf("Фото %d - %s.",$num,$title);
}
return $attr;
}
И все отлично работает. Сео радуется, все пляшут и танцуют)