как получить и отобразить замещающий текст изображения в wordpress?

как получить и отобразить замещающий текст изображения в wordpress? пытаюсь заменить заголовок на alt. вот исходный код.

<?php while ( have_posts() ) : the_post(); ?>

  <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
   <header class="entry-header">
    <h1 class="entry-title"><?php the_title(); ?></h1>

так что в h1 я хочу:

<h1 class="entry-title">"alt text of image"</h1>

попытался поместить его в такую ​​переменную:

 $alt_text = get_post_meta($img_id , '_wp_attachment_image_alt', true);
<h1 class="entry-title"><?php echo $alt_text; ?></h1>

но он не появляется. какие решения?


person user3254973    schedule 21.02.2014    source источник
comment
Какой текущий выход? Вы уверены, что переменная $img_id верна?   -  person Maxime Lorant    schedule 22.02.2014
comment
текущий вывод - это просто ничего. не знаю, правильный ли $ img_id.   -  person user3254973    schedule 22.02.2014


Ответы (5)


Прежде всего вам нужно получить attachment ID для получения alt текста ..

Используйте этот код, чтобы получить это,

$img_id = get_post_thumbnail_id(get_the_ID());

Теперь добавьте свой код,

<?php $alt_text = get_post_meta($img_id , '_wp_attachment_image_alt', true); ?>
<h1 class="entry-title"><?php echo $alt_text; ?></h1>

Убедитесь, что ваш attachment Alternative Text не пустой ...

Вы можете добавить Alternative Text из _7 _...

person Akshay Paghdar    schedule 22.02.2014

Не могли бы вы попробовать следующий код:

<?php
$thumb_id = get_post_thumbnail_id(get_the_ID());
$alt = get_post_meta($thumb_id, '_wp_attachment_image_alt', true);
if( $alt ):
    echo $alt;
endif;
?>
person Mukesh Panchal    schedule 26.05.2016

Я нашел сценарий, попробуйте, работает ли он для вас. Добавьте это в файл functions.php вашей темы.

function isa_add_img_title ($ attr, $ attachment = null) {

$img_title = trim( strip_tags( $attachment->post_title ) );

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

return $attr;

} add_filter ('wp_get_attachment_image_attributes', 'isa_add_img_title', 10, 2);

person aashutosh pandey    schedule 09.10.2018

Я обнаружил, что этот сценарий работает на моей стороне, похожий на Мукеш Панчал. Я пробовал другой сценарий от другого, но он не работал.

<?php $thumb_id = get_post_thumbnail_id(get_the_ID()); 
$alt = get_post_meta($thumb_id, '_wp_attachment_image_alt', true); ?>
<img class="image" src="<?php echo $feature_image; ?>" alt="<?php echo $alt; ?>" >
person johnhenrygaspay    schedule 22.02.2019

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

add_filter( 'render_block', function( $content, $block ) {
    if( 'core/image' !== $block['blockName'] )
        return $content;

    $alt = get_post_meta( $block['attrs']['id'], '_wp_attachment_image_alt', true );
    if( empty( $alt ) )
        return $content;

    // Empty alt
    if( false !== strpos( $content, 'alt=""' ) ) {
        $content = str_replace( 'alt=""', 'alt="' . $alt . '"', $content );

    // No alt
    } elseif( false === strpos( $content, 'alt="' ) ) {
        $content = str_replace( 'src="', 'alt="' . $alt . '" src="', $content );
    }

    return $content;
}, 10, 2 );
person Gnanasekaran Loganathan    schedule 01.04.2021