DUX主题缩略图显示优化

2015年10月27日13:07:36 3 1,567

DUX主题在缩略图显示部分设计的不是很灵活,DUX主题默认只支持显示文章设置的特色图像和默认缩略图。即文章设置了特色图像,在浏览时显示特色图像,如果文章未设置特色图像,则只能显示主题默认的图片文件。怎样才能使DUX主题在文章没有设置特色图像的情况下,自动提取第一张图片作为缩略图或者随机显示某张图片作为缩略图呢?

DUX主题缩略图显示优化

堕落的鱼通过修改/inc/fn.php文件实现,找到/inc/fn.php文件中的_get_post_thumbnail函数,将其修改为以下内容:

  1. function _get_post_thumbnail($size = 'thumbnail', $class = 'thumb') {
  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(_get_attachment_id_from_src($src), $size);
  8.         $html = sprintf('<img data-src="%s" class="%s"/>', $src_array[0], $class);*/
  9.         $domsxe = get_the_post_thumbnail();
  10.         // print_r($domsxe);
  11.         preg_match_all('/<img.*?(?: |\\t|\\r|\\n)?src=[\'"]?(.+?)[\'"]?(?:(?: |\\t|\\r|\\n)+.*?)?>/sim', $domsxe$strResult, PREG_PATTERN_ORDER);
  12.         $images = $strResult[1];
  13.         foreach($images as $src){
  14.             $html = sprintf('<img data-src="%s" class="thumb">', $src);
  15.             break;
  16.         }
  17.     }else {
  18.         $post_thumbnail_src = '';
  19.         ob_start();
  20.     ob_end_clean();
  21.     $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
  22.     $post_thumbnail_src = $matches [1] [0];   //获取该图片 src
  23.     if(empty($post_thumbnail_src)){
  24.         $random = mt_rand(1, 10);
  25.         $post_thumbnail_src = get_bloginfo('template_url').'/img/pic/'.$random.'.jpg';
  26.         }
  27.         $html = sprintf('<img data-src="%s" class="thumb">', $post_thumbnail_src);
  28.     }
  29.     return $html;
  30. }

需在主题目录下的/img/pic/目录下放置10张图片,图片命名格式为1.jpg ..... 10.jpg.

以上文件修改后即可实现如有特色图像,缩略图显示特色图像,无特色图像则用文章内第一个图片作为缩略图,如果文章内无图片,则随机显示图片上步设置的10张随机图片中的一张。

_get_post_thumbnail源码下载

avatar
  • 版权声明: 发表于 2015年10月27日13:07:36
  • 转载注明:https://www.duoluodeyu.com/1893.html

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:3   其中:访客  2   博主  1
    • avatar luckmayday 回复 0

      多谢博主啊,找了很久都没找到,这里找到了

      • avatar 更省APP 回复 0

        请教下博主!怎么取消缩略图显示之前的预览图?就是未显示的那个图片,直接把特色图像显示出来就行了,未显示的图片加载的时候看着难受 :mrgreen:

          • avatar 堕落的鱼 Admin 回复

            @更省APP 是可以去掉的,但是我好久没接触过DUX主题了,所以现在也不知道该怎么修改了。不好意思。