我正在尝试定位Wordpress帖子内容中的最后一张图片。每个帖子里面都有不同数量的图片,我想把标题重叠在最后一个。
我有代码来定位帖子的第一张图片,并将重叠的标题放在重叠的div中。问题是我不知道如何更改它以找出并定位最后一张图片。
HTML
<?php
preg_match_all('/(<img [^>]*>)/', get_the_content(), $images);
for( $i=0; isset($images[1]) && $i < count($images[1]); $i++ ) {
if ($i == 0) {
// only printed when looping on 1st image with a wrapped <div> element
echo sprintf('<div class="first-img"><h1>%s</h1>%s</div>', get_the_title(), $images[1][$i]);
continue;
}
echo $images[1][$i];
}
?>
编辑 - 我想要显示所有图像,但我想定位最后一个将标题置于顶部
答案 0 :(得分:1)
您可以使用end
PHP函数来获取图像数组的最后一个元素。
<?php
preg_match_all('/(<img [^>]*>)/', get_the_content(), $images);
if(!empty($images[1])){
$last_image = end($images[1]);
echo sprintf('<div class="first-img"><h1>%s</h1>%s</div>', get_the_title(), $last_image);
}
?>
http://php.net/manual/en/function.end.php
编辑:如果您想要所有图像,请尝试此操作:
<?php
preg_match_all('/(<img [^>]*>)/', get_the_content(), $images);
for( $i=0; isset($images[1]) && $i < count($images[1]); $i++ ) {
if ($i == end(array_keys($images[1]))) {
// only printed when looping on 1st image with a wrapped <div> element
echo sprintf('<div class="first-img"><h1>%s</h1>%s</div>', get_the_title(), $images[1][$i]);
continue;
}
echo $images[1][$i];
}
?>