2017-04-17 147 views
1

我已经使用这个函数来将默认的wordpress厨房主题格式化为我的bootstrap主题,并且工作正常。但是当我称之为“image_alt”和“image_title”没有成功。如何获取wordpress图库图片的元属性(title,alt,...)?

任何帮助,请?谢谢!

add_filter('post_gallery', 'bootstrap_gallery', 10, 3); 

function bootstrap_gallery($output = '', $atts, $instance) 
{ 
    $atts = array_merge(array('columns' => 3), $atts); 

    $columns = $atts['columns']; 
    $images = explode(',', $atts['ids']); 

    $col_class = 'img-box col-sm-4 col-xs-6 col-xxs-12 no-padding wow flipInX animated'; // default 3 columns 
    if ($columns == 1) { $col_class = 'img-box col-xs-12 no-padding wow flipInX animated';} 
    else if ($columns == 2) { $col_class = 'img-box col-xs-6 col-xxs-12 no-padding wow flipInX animated'; } 
    // other column counts 

    $return = '<div class="row gallery">'; 

    $i = 0; 

    foreach ($images as $key => $value) { 

     if ($i%$columns == 0 && $i > 0) { 
      $return .= '</div><div class="row gallery portfolio center">'; 
     } 

     $image_attributes = wp_get_attachment_image_src($value, 'full'); 
     $image_alt = get_post_meta($image->id, '_wp_attachment_image_alt', true); 
     $image_title = $attachment->post_title; 

     $return .= ' 
      <div class="'.$col_class.' img-box col-sm-4 col-xs-12 no-padding wow flipInX animated"> 
       <a data-gallery="gallery" href="'.$image_attributes[0].'"> 
        <img src="'.$image_attributes[0].'" alt="'.$image_alt.'" class="img-responsive"> 
       </a> 
       <div class="title">'.$image_title.'</div> 
      </div>'; 

     $i++; 
    } 

    $return .= '</div>'; 

    return $return; 
} 

回答

1

第一获得图像ID,试试这个

$image_id = get_post_thumbnail_id(get_the_ID()); 
or 
$image_id = get_post($id); 

,然后你可以通过ID用于获取图片的alt和形象称号。

$image_alt = get_post_meta($image_id, '_wp_attachment_image_alt', true); 
$image_title = $image_id->post_title; 
相关问题