2014-01-29 70 views
0

我試圖創建一個函數,將一個帖子的圖像附件加載到列表中供FlexSlider使用。要指定,我需要特定於某個帖子的圖像滑塊。根據我想要的帖子類型(在這種情況下爲圖片滑塊類型),一個頁面上可能會有很多滑塊。在FlexSlider for Wordpress中獲取圖像附件

但是,我遇到了一個問題。這是我的functions.php文件,馬蒂Spellerberg的jQuery的幻燈片文章的變化(我會發佈一個鏈接,但我不能發佈不到10代表超過2個鏈接):

function flexslider($post_id) { 
global $post; 

$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_title = $image->post_title; 

     $img_alt = get_post_meta($attachment_id, '_wp_attachment_image_alt', true); 
     if ($img_alt == '') : $img_alt = $img_title; endif; 

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

     ?> 
     <li><img src="<?php echo $img_url; ?>" alt="<?php echo $img_alt; ?>" title="<?php echo $img_title; ?>" /></li> 

    <?php endforeach; ?> 

<?php endif; 

} 

這是什麼叫index.php功能:

<div class="flexslider"> 
    <ul class="slides"> 
     <?php flexslider('large','$post->ID'); ?> 
    </ul> 
</div> 

問題是,它只顯示在永久鏈接頁面上。我希望它顯示在帖子顯示的位置。

這裏可以看到一個例子:permalinkhomepage

編輯:根據評論的建議更新雙引號單引號。

+0

*旁註:*不需要用雙引號包圍變量。 – Raptor

+0

我會牢記這一點並做出適當的修改。謝謝你,@ShivanRaptor! –

回答

1

這是我的解決方案。我基本上做了一些類似的事情,但將它壓縮成一個函數。 You can find more details on my blog

<?php 

function add_flexslider() { // display attachment images as a flexslider gallery 

    $attachments = get_children(array('post_parent' => get_the_ID(), 'order' => 'ASC', 'orderby' => 'menu_order', 'post_type' => 'attachment', 'post_mime_type' => 'image','caption' => $attachment->post_excerpt,)); 

    if ($attachments) { // see if there are images attached to posting ?> 

    <!-- Begin Slider --> 
    <div class="flexslider"> 
    <ul class="slides"> 

    <?php // create the list items for images with captions 

    foreach ($attachments as $attachment_id => $attachment) { 

    echo '<li>'; 
    echo wp_get_attachment_image($attachment_id, 'large'); 
    echo '<p>'; 
    echo get_post_field('post_excerpt', $attachment->ID); 
    echo '</p>'; 
    echo '</li>'; 

    } ?> 

    </ul> 
    </div> 
    <!-- End Slider --> 

    <?php } // end see if images 

} // end add flexslider 

?>