Alt и title для миниатюры записи

19 июн. 2017 г., 03:50:56
Просмотры: 51.5K
Голосов: 10

Я хотел узнать, нужен ли атрибут "Alt title" так же как и "Title" для миниатюр записей, и как его можно добавить в мой код вывода похожих записей... Я использую следующий код для получения миниатюры записи:

<div class="td-module-thumb">
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
<?php if (has_post_thumbnail()) {
the_post_thumbnail(array(324,235));
} else {
echo '<img src="' . get_bloginfo('template_directory') . '/images/no-thumb/td_324x235.png" />';
}
?>
</a>
</div>
0
Все ответы на вопрос 4
1
24

В этом примере используется альтернативный текст, который задан в медиабиблиотеке. Я предпочитаю этот подход, потому что поведение становится более последовательным для пользователей, которые добавляют альтернативный текст с помощью стандартных опций загрузки медиафайлов в WordPress.

$thumbnail_id = get_post_thumbnail_id( $post->ID );
$alt = get_post_meta($thumbnail_id, '_wp_attachment_image_alt', true);   
the_post_thumbnail( 'full', array( 'alt' => $alt ) );
14 июн. 2018 г. 18:06:54
Комментарии

Это следует принять как правильный ответ

WordPress Speed WordPress Speed
15 июл. 2019 г. 10:30:22
0

Необходимо задать значение alt для всех изображений на случай, если браузер не сможет загрузить изображение или посетитель использует программу чтения с экрана.

У вас есть два варианта. Либо использовать подпись к featured image (которая иногда может быть пустой), либо использовать заголовок записи в качестве alt.

Вы можете получить подпись с помощью get_post_meta(). Использование этой функции очень простое:

$alt = get_post_meta ( $image_id, '_wp_attachment_image_alt', true );
echo '<img alt="' . esc_html ( $alt ) . '" src="URL HERE" />';

Однако, эту функцию следует использовать внутри цикла или передавать ей объект $post или его ID.

Альтернативный метод - использовать заголовок записи в качестве текста alt. Для этого можно использовать:

echo '<img alt="' . esc_html ( get_the_title() ) . '" src="URL HERE" />';

Вы можете настроить условие и проверить, есть ли у миниатюры подпись, и использовать её вместо заголовка записи, если она доступна:

if ( $alt = get_the_post_thumbnail_caption() ) {
    // Здесь ничего не нужно делать
} else {
    $alt = get_the_title();
}

echo '<img alt="' . esc_html ( $alt ) . '" src="URL HERE"/>

ОБНОВЛЕНИЕ

Если вы хотите добавить атрибут alt непосредственно в get_post_thumbnail(), вы можете передать его в виде массива в функцию:

the_post_thumbnail( 'thumbnail', [ 'alt' => esc_html ( get_the_title() ) ] ); 
19 июн. 2017 г. 04:14:07
2
-1

Самое простое решение — следующий код:

$thumbnail_id = get_post_meta( $post->ID, '_thumbnail_id', true );
$img_alt = get_post_meta ( $thumbnail_id, '_wp_attachment_image_alt', true );

echo $img_alt;

Или более завершенный вариант кода:

$thumbnail_id = get_post_meta( $post->ID, '_thumbnail_id', true );
$img_alt = get_post_meta ( $thumbnail_id, '_wp_attachment_image_alt', true );

if(! $img_alt){
    $img_alt = get_the_title();
}
6 апр. 2021 г. 21:24:07
Комментарии

Это то же самое, что у Тома, но без использования get_post_thumbnail_id(). Что не так с get_post_thumbnail_id()?

Rup Rup
7 апр. 2021 г. 02:41:18

@Rup Нет никакой разницы. Просто этот вариант проще и короче.

Mohammad Shiralizadeh Mohammad Shiralizadeh
8 апр. 2021 г. 20:07:05
1
-2

Вы можете использовать следующий код в вашей теме WordPress:

<div class="td-module-thumb">
    <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
        <?php if (has_post_thumbnail()) {
            echo '<img src="' . the_post_thumbnail_url( array(324,235) ) . '" alt="Любой текст" title="Произвольный текст" />';
        } else {
            echo '<img src="' . get_bloginfo('template_directory') . '/images/no-thumb/td_324x235.png" alt="Любой текст" title="Произвольный текст" />';
        }
        ?>
    </a>
</div>
19 июн. 2017 г. 09:13:37
Комментарии

Добро пожаловать на WPSE. Пожалуйста, добавьте объяснение к вашему ответу: почему это может решить проблему? Что насчёт запрошенного атрибута alt у миниатюры записи?

Sven Sven
19 июн. 2017 г. 11:09:29