我在wordpress主题中创建了自定义帖子类型"albums"
。图片库已成功附加到每个帖子。附加到图库中所有父帖子的所有图像都显示在前端,使用:
<ul id="gallery">
<?php
$post_type = 'albums';
$args= array(
'post_type' => 'attachment',
'post_status' => 'inherit',
'post_mime_type' => 'image',
'fields' => 'id=>parent',
'order' => 'DESC',
'posts_per_page' => -1
);
// get all image parent post ids
$image_parents = get_posts( $args );
if ( $image_parents ) {
$parent_posts = get_posts( 'fields=ids&post_type=' . $post_type ); // query
if ( $parent_posts ) {
// getting all parent posts by post type that have images
$parent_posts_with_images = $parent_posts;
if ( $parent_posts_with_images ) {
// loop through all post type posts that have images
foreach ( $parent_posts_with_images as $post_id ) {
$args = array(
'post_parent' => $post_id,
'post_status' => 'inherit' ,
'post_type' => 'attachment',
'post_mime_type' => 'image',
'orderby' => 'rand',
'posts_per_page' => -1
);
$images = get_children( $args );
if ( $images ) {
foreach ( (array) $images as $image )
{ ?>
<li class="gallery-item">
<div class="gallery-image">
<?php
$img_url = wp_get_attachment_url( $image->ID );
$image = $img_url;
echo '<a href="'.$img_url.'" class="album-img" id="" title="'.$post_title.'" >
<img src="'.$image.'" alt=""/></a>';
?>
</div>
</li>
<?php }
}
}
}
}
}
?>
</ul>
CSS:
ul#gallery{width:100%;height:100%;position:relative;background:white}
ul#gallery li.gallery-item{width:20%; height:200px;overflow;hidden;}
li.gallery-item .gallery-image{ width:100%;height:100%;}
li.gallery-item .gallery-image img { width:100%;height:100%;display:block}
通过这种方式,我可以获得前端的所有50张图像(例如,每张图库附有10张图像的5张图片)。现在,我没有在显示页面上显示所有图库图像,而是只希望每个图库中的第一张图像附加到自定义帖子类型的父帖子。并且想要使用此第一张图片初始化我的灯箱/颜色框或点击后的任何其他滑块在第一张图片上。帮我修改我的代码。
如果我在自定义帖子类型中创建了5个帖子,如(汽车,自行车,自然,时尚,标识),并附有相应的图片库。那么我最初只想显示汽车,自行车,自然的第一张图片,时尚和标志。