如何在wordpress中检索并显示图像的替代文字?

时间:2014-02-21 21:25:09

标签: php wordpress image alt

如何在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>

但它没有显示出来。任何解决方案?

5 个答案:

答案 0 :(得分:4)

首先,您需要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 ...

添加wp-admin --> Media --> edit your attachment --> Alternative Text

答案 1 :(得分:2)

请试试下面的代码:

<?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;
?>

答案 2 :(得分:0)

我找到了一个脚本,请尝试一下是否适合您。将此添加到主题的functions.php文件中

函数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);

答案 3 :(得分:0)

我发现此脚本可以正常工作,类似于Mukesh Panchal。我尝试了其他脚本,但没有用。

<?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; ?>" >

答案 4 :(得分:0)

下面的代码解决了这个问题。当页面加载时,它会找到所有缺少替代文本的图像,并查看您是否在媒体库中为其指定了替代文本。如果是这样,它会在加载页面之前更新图像。

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 );