对于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标签,但我也很满意所有幻灯片的静态所有标签。
谢谢,
此致 米尔娜
答案 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://')