个性化阅读
专注于IT技术分析

如何在自定义WordPress主题中生成标题图像替代文本?

我正在构建没有插件的自定义WordPress主题。每个页面的标题图像可能不同, 因此我使用仪表板分配图像并在主题代码中调用” get_header_image()”函数。标头图像可以正确显示, 但替代文本则不能。

我写了以下代码:

function alt_text_display() {
    $header_id = get_header_image(get_the_ID());
    $alt = get_post_meta($header_id, 'wp_get_attachment_image_alt', true);
    echo $alt;
}

add_action( 'wp_enqueue_scripts', 'alt_text_display' );

它不起作用, 可能是因为get_header_iamge()不接受参数, 对吗?

我的HTML看起来像这样:

    <div class="hero_container">
          <img src="<?php echo( get_header_image() ); ?>" class="hero">
     </div>

我将图片的替代文本上传到媒体库时设置。该文本未显示。而是显示该网站的标题。如何显示在媒体库中设置的替代文本?


#1


好像你忘记了在html中添加” alt”属性并在其中调用函数。

<div class="hero_container">
      <img src="<?php echo( get_header_image() ); ?>" alt="<?php display_alt_text(); ?>" class="hero">
 </div>

或者你可以在html中使用wp_get_attachment_image输出图像:

<?php echo wp_get_attachment_image( get_the_ID(), array('700', '600'), "", array( "alt" => "My image alt text here" ) );  ?>

#2


我想到了。这是我的自定义功能

function alt_text_display() {

        $data =  get_object_vars(get_theme_mod('header_image_data'));
        $image_id = is_array($data) && isset($data['attachment_id']) 
                    ? $data['attachment_id'] : false;

        if ($image_id) {

            $image_alt = get_post_meta( $image_id, '_wp_attachment_image_alt', true);
            return image_alt;

        }

    }

    add_action( 'wp_enqueue_scripts', 'alt_text_display' );

这是我的HTML:

<div class="hero_container">
                    <img src="<?php echo( get_header_image() ); ?>" alt="<?php echo( alt_text_display() ); ?>"  class="hero">
                </div>
赞(0)
未经允许不得转载:srcmini » 如何在自定义WordPress主题中生成标题图像替代文本?

评论 抢沙发

评论前必须登录!