0

我正在构建一个主题,并通过 ACF 在网站上显示图像。我正在尝试获取客户端在上传图像时输入的替代文本。我了解图像返回格式应设置为图像数组或 ID,而不是 URL。很久以前我的设置为 URL,我无法修改我的代码以在检查时反映 alt 文本。这是我当前显示人员中继器的功能。

function meetOurTeamListing() {
    if(have_rows('meet_our_team')):
        while(have_rows('meet_our_team')): the_row();
            $staffImage = get_sub_field('staff_image');
            $staffName = get_sub_field('staff_name');
            $staffTitle = get_sub_field('staff_title');
            $staffBio = get_sub_field('staff_bio');

            $html = 
            '
            <div class="myBtn staff-item">
                <img src="'.$staffImage.'" />
                <p class="staff-name">'.$staffName.'</p>
                <p class="staff-title">'.$staffTitle.'</p> 
            </div>    

            <!-- The Modal -->
            <div class="myModal modal">

            <!-- Modal content -->
            <div class="modal-content">    
                <div class="modal-header">
                    <span class="close">&times;</span>

                    <div class="modal-header-text">
                        <p class="modal-name">'.$staffName.'</p>
                        <p class="modal-pipe">|</p>
                        <p class="modal-title">'.$staffTitle.'</p>
                    </div>    
                </div>
                <img src="'.$staffImage.'" />
                <div class="modal-body">'.$staffBio.'</div>
            </div>

            </div>
            ';

            echo $html;

        endwhile;
    endif;  
}

显然,子字段需要转换为图像数组,但是只需将无线电选择器从“图像 url”切换到“图像数组”就会破坏前端的图像。鉴于这种情况,我如何动态地从 WP 数据库中实现替代文本?

4

1 回答 1

0

问题解决了。谢谢妮可!

我的问题是,在设置拍摄图像的自定义字段时,我将它们设置为图像 URL。如果您只想快速显示图像,这很好,因为它只返回一个字符串。它应该设置为图像阵列。这会生成可在主题模板中访问的键/值对(即替代文本)的逐项列表。

要显示设置为图像数组的图像,语法如下:

<img src="'.esc_url($image['url']).'" alt="'.esc_attr($image['alt']).'" />

这仅适用于我的 PHP 函数。或者,可以在 HTML 中的模板文件中使用以下内容:

<img src="<?php echo esc_url($image['url']); ?>" alt="<?php echo esc_attr($image['alt']); ?>" />
于 2020-01-27T17:48:19.163 回答