9

我正在尝试获取页面的特色图像 alt 并将其作为段落文本回显,但我的代码似乎不起作用。

我目前能够回显图像并且它运行良好。

这是我正在使用的代码:

    <?php
    get_header(); ?>
      </div>
    <?php /* The loop */ ?>
    <?php while ( have_posts() ) : the_post(); ?>
    <div class="header-image">

    <?php echo get_the_post_thumbnail($page->ID, 'full'); ?> 
    
    <?php $alt = get_post_meta( $attachment_img->ID, '_wp_attachment_image_alt', true ); ?>
    
    <p><?php echo $alt; ?></p>
    
    </div>
4

3 回答 3

29

检查您是否获得正确的缩略图 ID。
对我来说,这段代码完美无缺:

$thumbnail_id = get_post_thumbnail_id( $post->ID );
$alt = get_post_meta($thumbnail_id, '_wp_attachment_image_alt', true);
于 2013-11-21T15:32:39.913 回答
4

这是一个解决方案

  $thumbnail_id    = get_post_thumbnail_id($post->ID);
  $thumbnail_image = get_posts(array('p' => $thumbnail_id, 'post_type' => 'attachment'));

  if ($thumbnail_image && isset($thumbnail_image[0])) {
    echo '<span>'.$thumbnail_image[0]->post_excerpt.'</span>';
  }

或者您可以使用您的代码,但不是$alt直接回显,而是需要回显$alt->post_excerpt

于 2013-10-09T15:28:44.770 回答
1

如果您想获取特色图片的替代文本,可以使用此代码获取它...

<?php echo get_post_meta( get_post_thumbnail_id(), '_wp_attachment_image_alt', true); ?>

因此,如果您想将其放在 P 标签中,这将起作用...

<p><?php echo get_post_meta( get_post_thumbnail_id(), '_wp_attachment_image_alt', true); ?></p>

希望它可以帮助您,或者至少对某人有所帮助。

于 2020-08-05T21:45:06.463 回答