2015-08-08 2 views
0

Я хочу показать изображение в моем слайдере. так что я сделал в моем function.php, как показано ниже:показ текстового изображения в слайдере

<?php 

    function revconcept_get_images($post_id) { 
    global $post; 

    $thumbnail_ID = get_post_thumbnail_id(); 

    $images = get_children(array('post_parent' => $post_id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID')); 

    if ($images) : 

     foreach ($images as $attachment_id => $image) : 

      $img_alt = get_post_meta($attachment_id, '_wp_attachment_image_alt', true); //alt 
      if ($img_alt == '') : $img_alt = $image->post_title; endif; 

      $big_array = image_downsize($image->ID, 'large'); 
      $img_url = $big_array[0]; 

      echo '<li>'; 
      echo '<img src="'; 
      echo $img_url; 
      echo '" alt="'; 
      echo $img_alt; 
      echo '" />'; 
      echo '</li><!--end slide-->'; 

    endforeach; endif; } 
    ?> 
      <div class="flexslider"> <!-- function called in index.php --> 
        <ul class="slides"> 
        <?php revconcept_get_images("$post->ID"); ?> 
       </ul> 
      </div><!--end flexslider--> 

Теперь у меня есть две проблемы. №1. Модифицированное изображение не отображается в слайдере. Он показывает сломанную ссылку. но он может повторить post_id. no.2 Я хочу показать только 3/4 изображения с последней записи cat = 5. может ли кто-нибудь помочь мне сделать это? Заметьте, что я использую flexslider для своего слайдера.

+0

DId вы пытаетесь: '$ thumbnail_ID = get_post_thumbnail_id ($ post_id);'? –

+0

Просто попробовал .. не работает. – Nazmul

ответ

0

Хорошо, это то, что я тестировал, вы можете немного уточнить запрос, но для меня это сработало. В functions.php поставил

function revconcept_get_images($post_id) { 

    $images = get_posts(array(
       'post_type' => 'attachment', 
       'hide_empty' => true, 
       'order' => 'ASC', 
       'orderby' => 'menu_order ID' 
      )); 

    foreach ($images as $image) { 
     $image_url = $image->guid; 
     $img_alt = get_post_meta($image->ID, '_wp_attachment_image_alt', true); //alt 

     echo '<li><img src="'.$image_url.'" alt="'.$img_alt.'" /></li>'; 

    } 

} 

И в index.php положить (где вы хотите)

<div class="flexslider"> <!-- function called in index.php --> 
    <ul class="slides"> 
     <?php revconcept_get_images($post->ID); ?> 
    </ul> 
</div><!--end flexslider--> 

Если вы хотите, чтобы показать все показанные изображения из сообщений вы просто положить 'posts_per_page' => -1, в get_posts() массиве.

+0

Спасибо за вашу поддержку, теперь ваш код работает для меня. можете ли вы сказать мне еще две вещи, вот как я могу показать только изображения категории = 4 в слайдере? и как я могу делать изображения в слайдерной ссылке, способной к соответствующему сообщению. Прошу прощения за слишком много, я новичок в wordpress & php. – Nazmul

+0

Если вы хотите отфильтровать изображения из определенной категории, вам нужно добавить в свой запрос '' cat '=> # ID', где '# ID' - это идентификатор категории, которую вы хотите показать, либо либо' category_name '=>' name'' (с использованием названия категории). Связывание не должно быть так сложно, поскольку у вас есть идентификатор сообщения. Вместо текущего эха попробуйте 'echo '

  • '.$img_alt.'
  • ';' –