我正在尝试创建一个函数,将帖子的图像附件加载到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>
问题是,它只出现在永久链接页面上。我希望它显示在帖子显示的任何地方。
此处可以看到一个示例:permalink和homepage。
编辑:根据评论中的建议更新单引号的双引号。
答案 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
?>