首页 > CMS > Wordpress > 正文

wordpress 获取文章内所有图片个数与图片地址例子

2024-09-07 00:52:16
字体:
来源:转载
供稿:网友

wordpress 获取文章内所有图片个数与图片地址的相关文章以前小编有介绍过了,今天看到两个优化比较好的代码我给各位整理一下吧。

WordPress获取文章中的图片个数

复制以下代码到当前使用主题的functions.php文件中,然后在文章列表主循环或文章页中调用该函数即可。

注:xiu主题已有该功能。

WordPress获取文章中的图片个数函数:

  1. /* 
  2.  * 获取文章中的图片个数 (使用在文章列表主循环中、或文章页中) 
  3.  */ 
  4. if( !function_exists('get_post_images_number') ){ 
  5.  function get_post_images_number(){ 
  6.      global $post
  7.      $content = $post->post_content;   
  8.      preg_match_all('/<img.*?(?: |//t|//r|//n)?src=[/'"]?(.+?)[/'"]?(?:(?: |//t|//r|//n)+.*?)?>/sim'$content$result, PREG_PATTERN_ORDER);   
  9.      return count($result[1]);  //Vevb.com 
  10.  } 

函数使用方法:

<?php echo get_post_images_number().'张图片' ?>

wordpress 获取文章内所有图片,将代码插入functions.php:

  1. function hui_get_thumbnail( $single=true, $must=true ) { 
  2.     global $post; 
  3.     $html = ''
  4.     if ( has_post_thumbnail() ) { 
  5.         $domsxe = simplexml_load_string(get_the_post_thumbnail()); 
  6.         $src = $domsxe->attributes()->src; 
  7.         $src_array = wp_get_attachment_image_src(hui_get_attachment_id_from_src($src), 'thumbnail'); 
  8.         $html = sprintf('<li><img src="%s" /></li>', $src_array[0]); 
  9.     } else { 
  10.         $content = $post->post_content; 
  11.         preg_match_all('/<img.*?(?: |//t|//r|//n)?src=[/'"]?(.+?)[/'"]?(?:(?: |//t|//r|//n)+.*?)?>/sim', $content, $strResult, PREG_PATTERN_ORDER); 
  12.         $images = $strResult[1]; 
  13.         $counter = count($strResult[1]); 
  14.         $i = 0
  15.         foreach($images as $src){ 
  16.             $i++; 
  17.             $src2 = wp_get_attachment_image_src(hui_get_attachment_id_from_src($src), 'thumbnail'); 
  18.             $src2 = $src2[0]; 
  19.             if( !$src2 && true ){ 
  20.                 $src = $src; 
  21.             }else
  22.                 $src = $src2; 
  23.             } 
  24.             $item = sprintf('<li><img src="%s" /></li>', $src); 
  25.             if( $single){ 
  26.                 return $item; 
  27.                 break
  28.             } 
  29.             $html .= $item; 
  30.             if
  31.                 ($counter >= 4 && $counter < 8 && $i >= 4) || 
  32.                 ($counter >= 8 && $i >= 8) || 
  33.                 ($counter > 0 && $counter < 4 && $i >= $counter) 
  34.             ){ 
  35.                 break
  36.             } 
  37.         } 
  38.     } 
  39.     return $html; 
  40. function hui_get_attachment_id_from_src ($link) { 
  41.     global $wpdb; 
  42.     $link = preg_replace('/-/d+x/d+(?=/.(jpg|jpeg|png|gif)$)/i''', $link); 
  43.     return $wpdb->get_var("SELECT ID FROM {$wpdb->posts} WHERE guid='$link'"); 

以上代码规则可根据自己实际要求来修改,前端调用:

<?php echo hui_get_thumbnail(false,true);?>

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表