从任何特定的帖子,我试图显示所有图像,以及相应的标题,并依次排列:
-------------
| |
| Img1 |
| |
-------------
Caption 1
-------------
| |
| Img2 |
| |
-------------
Caption 2
-------------
| |
| Img3 |
| |
-------------
Caption 3
这就是我想要达成的目标。
代码:
<?php
$attachments = get_children( array(
'post_parent' => get_the_ID(),
'order' => 'ASC',
'post_mime_type' =>'image') );
$args = array(
'post_parent' => get_the_ID(),
'order' => 'ASC',
'post_type' => 'attachment' );
$thumb_images = get_posts($args);
foreach ($attachments as $attachment_id => $attachment)
foreach ($thumb_images as $thumb_image)
{
{
echo "<div class='image'>";
echo wp_get_attachment_image( $attachment_id, 'full' );
echo "</div>";
echo "<div class='caption'>";
echo $thumb_image->post_excerpt;
echo "</div>";
}
}
?>
如果有3张图片&amp;相应的标题,此代码每个图像显示3次,每个图像显示3个不同的标题。这是9张图片&amp; 9个字幕。至少字幕是有序的,但图像重复。
-------------
| |
| Img1 |
| |
-------------
Caption 1
-------------
| |
| Img1 |
| |
-------------
Caption 2
-------------
| |
| Img1 |
| |
-------------
Caption 3
-------------
| |
| Img2 |
| |
-------------
Caption 1
-------------
| |
| Img2 |
| |
-------------
Caption 2
-------------
| |
| Img2 |
| |
-------------
Caption 3
ETC
如果代码更新:
<?php
$attachments = get_children( array(
'post_parent' => get_the_ID(),
'order' => 'ASC',
'post_mime_type' =>'image') );
$args = array(
'post_parent' => get_the_ID(),
'order' => 'ASC',
'post_type' => 'attachment' );
$thumb_images = get_posts($args);
foreach ($attachments as $attachment_id => $attachment) {
foreach ($thumb_images as $thumb_image) {}
echo "<div class='image'>";
echo wp_get_attachment_image( $attachment_id, 'full' );
echo "</div>";
echo "<div class='caption'>";
echo $thumb_image->post_excerpt;
echo "</div>";
}
?>
它显示没有重复的图像,但标题属于最后加载的图像,并重复相当于与帖子关联的图像总数。
-------------
| |
| Img1 |
| |
-------------
Caption 3
-------------
| |
| Img2 |
| |
-------------
Caption 3
-------------
| |
| Img3 |
| |
-------------
Caption 3
有关如何正确编写它的任何想法,以便以x倍的图像数量和x倍的字幕数量一个接一个地结束?没有重复。
最好的问候。
劳拉
答案 0 :(得分:0)
假设$attachments
的大小与$thumb_images
相同:
$i = 0;
foreach ($attachments as $attachment_id => $attachment) {
echo "<div class='image'>";
echo wp_get_attachment_image($attachment_id, 'full');
echo "</div>";
echo "<div class='caption'>";
echo $thumb_images[$i]->post_excerpt;
echo "</div>";
$i++;
}
要更好地了解$attachments
和$thumb_images
中的内容,请使用以下代码段进行调试:
echo "<pre>";
echo var_dump($attachments);
echo var_dump($thumb_images);
echo "</pre>";
你会发现$thumb_images
是一个数组。
问:$i++
的逻辑是什么?
$i++
是post-increment operator。
$i++
实际上是$i = $i + 1
的简写,因此对于循环的每次迭代,$i
的值递增。最初,$i = 0
。调用$i++
后,$i = 1
。如果在另一次迭代中再次调用$i++
$i = 2
,依此类推等等。
您也可以使用foreach
循环来迭代数组,而不是使用for
循环。有关for
循环(以及使用$i++
概念的相应示例)的示例,请参阅PHP's documentation for for
。