将alt-tag添加到滑块 - Wordpress

时间:2018-05-21 15:12:43

标签: wordpress image tags slider alt

对于wordpress,我正在使用的当前主题没有为滑块图像指定alt标签。由于开发人员不会认识到这是主题的问题(而是选择省略alt标签),我根本无法从他们那里得到任何帮助。

所以我找到了为每张幻灯片输出img-tag的代码。但实际输出不存在,因此我无法手动将alt标记添加到代码中。

这是渲染幻灯片的部分:

function render_slideshow(){
    if(post_password_required($this->post_id)){ return false; }
    $output = "";
    $i = 0;
    $output .= $this->before_container_html;
    if($this->slide_number){

        $output .= '<div class="slideshow_container '.esc_attr($this->slide_container_class).' slide_layout_'.esc_attr($this->options['slideshow_layout']).'" id="'.esc_attr($this->slide_container_id).'flex" '.esc_attr($this->additional_attr).'>';
        $output .= $this->custom_header_html;
        $output .= '    <ul class="'.esc_attr($this->slide_ul_class).' slide_'.esc_attr($this->slide_type).'">';
        $output .= $this->before_elements;
        foreach($this->slides as $slide):

            $i++;
            $image = "";
            if(!empty($slide['attachment_id']))
            {   
                $m_d = '';
                if(isset($this->media_img_data[$i]) && !empty($this->media_img_data[$i]))
                    $m_d = $this->media_img_data[$i];
                $image_string = codeless_image_by_id($slide['attachment_id'], $this->img_size, 'image', $m_d); 
                if(!$image_string) $image_string = $slide['attachment_id'];
                if(isset($slide['url']) && $slide['url'] != 'http://')
                {
                    $image = "<a href='".esc_url($slide['url'])."'>".$image_string."</a>";
                }else
                    $image = $image_string;
            }

            $output .= "<li class='".esc_attr($this->slide_element_class)." slide_element slide".$i." frame".$i."'>";
                if(!is_array($this->before_render_media))
                    $output .=           $this->before_render_media;
                else
                    $output .=           $this->before_render_media[$i];
                $output .=           $image;
                $output .=           $this->after_render_media;
                if(isset($slide['title']) && strlen($slide['title']) > 1){
                    $output .= $this->after_render_media; $output .= '<div class="captionss">';
           $output .= '<p class="flex-caption" data-effect-in="fadeInLeft" data-effect-out="fadeOutRight"><span>'.esc_attr($slide['title']).'</span></p>';
                       if(isset($slide['description']) && strlen($slide['description']) > 1)
            $output .= '<p class="flex-caption" data-effect-in="fadeInLeft" data-effect-out="fadeOutRight"><span>'.esc_attr($slide['description']).'</span></p>';
           $output .='</div>';
        }
            $output .= "        </li>";




        endforeach;
        $output .= $this->after_elements;
        $output .= "    </ul>";
        $output .= $this->custom_footer_html;

        $output .= "</div>";
        $output .= $this->after_container_html;

    }
    return $output;

}

呈现实际图像的行是:

                   $image = "<a href='".esc_url($slide['url'])."'>".$image_string."</a>";

引用的image_string就在该行的上方。但我不知道如何在那里实现alt。因为它从其他地方获取数据,但我不知道在哪里可以找到它。

图像在线呈现为

<img src='https://praktijk-kerngezond.nl/wp-content/uploads/2014/09/foto_kinderdietist_kerngezond-e1526907903126.jpg' title='foto_kinderdietist_kerngezond' alt='' />

如您所见,代码中引用了alt-tag,但为空。填写媒体库中的值时。

任何人都能指出我正确的方向吗?我希望它能够在媒体库中指定alt标签,但我也很满意所有幻灯片的静态所有标签。

谢谢,

此致 米尔娜

1 个答案:

答案 0 :(得分:0)

静态选项,更改:

if(!$image_string) $image_string = $slide['attachment_id'];
if(isset($slide['url']) && $slide['url'] != 'http://')

收件人:

if(!$image_string) $image_string = $slide['attachment_id'];

$image_string = str_replace("alt=''", alt="YOUR STATIC ALT", $image_string);

if(isset($slide['url']) && $slide['url'] != 'http://')

或使用$ slide ['title'](如果不是空的话):

if(!$image_string) $image_string = $slide['attachment_id'];

$slide['title'] ? $alt = $slide['title'] : $alt = "YOUR STATIC ALT"; 
$image_string = str_replace("alt=''", alt="'.$alt.'", $image_string);

if(isset($slide['url']) && $slide['url'] != 'http://')