如何在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>
但它没有显示出来。任何解决方案?
答案 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 );