在FlexSlider for Wordpress中获取图像附件

时间:2014-01-29 07:03:37

标签: php jquery html

我正在尝试创建一个函数,将帖子的图像附件加载到FlexSlider要使用的列表中。要指定,我想要一个特定于某个帖子的图像滑块。根据我想要的帖子类型(在这种情况下,图像滑块类型),一页上可能有很多滑块。

然而,我遇到了一个问题。这是我的functions.php文件,Marty Spellerberg的jQuery幻灯片文章的变体(我会发布一个链接,但我不能发布超过2个链接,少于10个代表):

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

编辑:根据评论中的建议更新单引号的双引号。

1 个答案:

答案 0 :(得分: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

?>