Search code examples
phpwordpressimagefunctionalt

Adding image alt attribute field


I've got these codes:

$slider_gallery.= '<span class="chpcs_img"><a href="'.$post_link.'">'.$this->get_post_image($post->ID,$image_size).'</a></span>';
public  function get_post_image($post_image_id, $img_size) {

    if (has_post_thumbnail($post_image_id)):
        $img_arr = wp_get_attachment_image_src(get_post_thumbnail_id($post_image_id), $img_size); $first_img = $img_arr[0];
    endif;

    if (empty($first_img)) {
        if (empty($this->options['settings']['default_image_url'])) {
            $first_img = plugins_url('assets/images/default-image.jpg', __FILE__);
        }
        else {
            $first_img = $this->options['settings']['default_image_url'];
        }
    }
    $first_img = "<img src='".$first_img. "' />";
    return $first_img;
}

I'm trying to add alt attribute but can't figure out. By the way that's wordpress plugin https://wordpress.org/plugins/carousel-horizontal-posts-content-slider/ on /plugins/carousel-horizontal-posts-content-slider/chpcs.php

line 340 and line 404-427


Solution

  • pass $img_alt in your function.

    public  function get_post_image($post_image_id, $img_size, $img_alt) {
    
        if (has_post_thumbnail( $post_image_id ) ): 
         $img_arr = wp_get_attachment_image_src( get_post_thumbnail_id( $post_image_id ), $img_size ); $first_img = $img_arr[0];
    
        endif; 
    
        if(empty($first_img)) {
    
        if(empty($this->options['settings']['default_image_url'])) {
    
             $first_img = plugins_url('assets/images/default-image.jpg', __FILE__);
    
        } else {
    
            $first_img = $this->options['settings']['default_image_url'];
    
        }
    }
      $first_img = "<img src='". $first_img. "' alt='". $img_alt. "' />";
      return $first_img;
    }
    

    and then your calling line will be

    $slider_gallery.= '<span class="chpcs_img"><a href="'.$post_link.'">'.$this->get_post_image($post->ID,$image_size, "Alt text").'</a></span>';