获取wordpress文章中所有的图片及图片数量

图片数量与图片显示是很必要的,通过文章列表中就可以显示出图片的数量于数量样式很提升用户体验及诉求,那我们怎样在一款主题上实现这样的功能呢,下面大挖给大家介绍下调用wordpress文章所有图片及文章所有图片数量的方法

wordpress主题获取文章中的所有图片

  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. }
  41. function hui_get_attachment_id_from_src ($link) {
  42.     global $wpdb;
  43.     $link = preg_replace('/-d+xd+(?=.(jpg|jpeg|png|gif)$)/i', '', $link);
  44.     return $wpdb->get_var("SELECT ID FROM {$wpdb->posts} WHERE guid='$link'");
  45. }

wordpress主题前台调用代码放在需要显示的位置上

  1. <!--?php echo hui_get_thumbnail(false,true);?-->

获取wordpress文章内容中的图片数量值

  1. if( !function_exists('get_post_images_number') ){  
  2.     function get_post_images_number(){  
  3.         global $post;  
  4.         $content = $post->post_content;    
  5.         preg_match_all('/<img.*?(?: |\\t|\\r|\\n)?src=[\'"]?(.+?)[\'"]?(?:(?: |\\t|\\r|\\n)+.*?)?>/sim', $content, $result, PREG_PATTERN_ORDER);    
  6.         return count($result[1]);    
  7.     }  
  8. }

wordpress前台显示代码

  1. <!--?php echo get_post_images_number().'张图片' ?-->
话题:
No Tag

相关推荐