WordPress-自动获取文章中的图片

林继 WordPress 2,632 共写了269个字 (2011-01-02 12:35:00) 没有评论 打印 扫描二维码 百度已收录

自动搜索文章图片,然后,显示:

  1. <?php if (have_posts()) : ?>
  2. <?php while (have_posts()) : the_post(); ?>
  3. <?php
  4. $szPostContent = $post->post_content;
  5. $szSearchPattern = '~<img [^\>]*\ />~'; // 搜索所有符合的图片
  6. preg_match_all( $szSearchPattern, $szPostContent, $aPics );
  7. $iNumberOfPics = count($aPics[0]); // 检查一下至少有一张图片
  8. if ( $iNumberOfPics > 0 ) {
  9. // 这里是你怎么处理图片的内容
  10. for ( $i=0; $i < $iNumberOfPics ; $i++ ) {
  11. echo $aPics[0][$i];
  12. };
  13. };
  14. endwhile;
  15. endif;
  16. ?>


如果一篇文章有多个图片的话,都统统会被显示出来。有时我们只需要显示一张,那这个代码就不符合我们的要求了,所以,让我们来小小地修改一下代码:

  1. <?php
  2. $soContent = $post->post_content;
  3. $soImages = '~<img [^\>]*\ />~';
  4. preg_match_all( $soImages, $soContent, $thePics );
  5. $allPics = count($thePics[0]);
  6. switch ( $allPics > 0 ) {
  7. case $allPics = 1:
  8. echo $thePics[0][0]; // 显示文章中的第一张图片
  9. break; // 当图片数量有1个时,不再执行
  10. default:
  11. echo "这里应该显示图片,而不是sofish"; // 这里加入没图片时显示的默认图片
  12. };
  13. ?>

像上面说明的,我们用switch语句,而不是if…else if…else这样,来获取我们的一张图片。当检查到一张的时候,代码不再运行。这样也省去了对服务器的请求。
本文内容源于:http://www.happinesz.cn/archives/935/

历史上的今天

1月
2

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

< >