定位Wordpress中的最后一个图像 - 未定义的数量

时间:2015-09-06 12:31:32

标签: php jquery html wordpress

我正在尝试定位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];
            }
        ?> 

编辑 - 我想要显示所有图像,但我想定位最后一个将标题置于顶部

1 个答案:

答案 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];
        }
    ?>