Как я могу добавить поддержку предоставленного клиентом альтернативного текста в моей собственной теме WordPress? - PullRequest
0 голосов
/ 24 января 2020

Я создаю тему, и у меня есть изображения, отображаемые на сайте через ACF. Я пытаюсь получить альтернативный текст, который вводит клиент при загрузке изображения. Я понимаю, что формат возврата изображения должен быть установлен на массив изображений или ID, а не URL. Мой был установлен на URL довольно долго go, и у меня возникли проблемы с пересмотром моего кода, чтобы он отражал альтернативный текст при проверке. Вот моя текущая функция, которая отображает штатный ретранслятор.

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?

1 Ответ

0 голосов
/ 27 января 2020

Проблема решена. Спасибо, Николь!

Моя проблема заключалась в том, что при настройке пользовательских полей для изображений я устанавливал для них URL-адрес изображения. Это хорошо, если вы просто хотите быстро отобразить изображение, потому что оно просто возвращает строку. Должно быть установлено значение Image Array. Это приводит к подробному списку пар ключ / значение (ie. Alt text), которые доступны в шаблоне темы.

Чтобы отобразить ваше изображение, для которого установлен массив изображений, вот синтаксис:

<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']); ?>" />
...