一个热爱网络的小学教师

DUX主题实现缩略图随机显示

高海鹏老师的博客目前使用某网友分享出来的DUX主题,这个主题看起来很不错,但是缩略图的设置很简单:如果设置了“特色图像”,就以“特色图像”作为缩略图;如果没有设置“特色图像”,则显示一幅默认的图片。经过研究,我最终实现了DUX主题随机缩略图的显示:如果设置了“特色图像”,就以“特色图像”作为缩略图;如果没有设置“特色图像”,则自动调取文章内第一幅图片作为缩略图;如果文章内没有图片,则随机显示一幅图片。

具体实现方法如下(以DUX 1.3版本为例):

首先修改inc/fn.php,打开fn.php文件,找到第463行,将以下内容:

$html = sprintf('<img class="%s" alt="" data-src="%s" />', get_stylesheet_directory_uri() . '/img/thumbnail.png', $class);

修改为:

$random = mt_rand(1, 20);
$html = sprintf('<img class="%s" alt="" data-src="%s" />', get_stylesheet_directory_uri() . '/img/random/'.$random.'.jpg', $class);

接下来,我们在主题的img下建立一个文件夹random,复制进20张图片,并重命名为1.jpg、2.jpg……20.jpg,这样,DUX主题就实现了自动显示随机缩略图的功能,如果文章没有设置“特色图像”,将随机显示一幅图片。

下面我来实现自动调取第一幅图片,在主题的functions.php文件中加入如下代码:

function autoset_featured() {
          global $post;
          $already_has_thumb = has_post_thumbnail($post-&gt;ID);
              if (!$already_has_thumb)  {
              $attached_image = get_children( "post_parent=$post-&gt;ID&amp;post_type=attachment&amp;post_mime_type=image&amp;numberposts=1" );
                          if ($attached_image) {
                                foreach ($attached_image as $attachment_id =&gt; $attachment) {
                                set_post_thumbnail($post-&gt;ID, $attachment_id);
                                }
                           }
                        }
      }  //end function
add_action('the_post', 'autoset_featured');
add_action('save_post', 'autoset_featured');
add_action('draft_to_publish', 'autoset_featured');
add_action('new_to_publish', 'autoset_featured');
add_action('pending_to_publish', 'autoset_featured');
add_action('future_to_publish', 'autoset_featured');

这样,DUX主题就修改完了,保存即可看到效果。

本文参考了这两篇文章:

http://www.dedewp.com/2568.html

http://www.ymjihe.com/1753.html

感谢原作者分享!

未经允许不得转载:高海鹏老师的博客 » DUX主题实现缩略图随机显示

分享到:更多 ()

评论 21

Protected by WP Anti Spam

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #13

    博主,dux1.5的inc/fn.php找不到

    柰枚12个月前 (12-31)回复
    • 1.5跟1.3不同,我这是1.3。

      高海鹏11个月前 (01-04)回复
  2. #12

    dux1.5要吗

    芝麻创意1年前 (2016-12-03)回复
    • 求地址,谢谢。

      高海鹏1年前 (2016-12-05)回复
  3. #11

    dux1.5能不能用这个方法

    微一微1年前 (2016-06-25)回复
    • 仅适用于1.3

      高海鹏1年前 (2016-06-27)回复
  4. #10

    博主,这里有个问题:我在文件夹里放了6张随机图片,那些没有图片的文章,显示的缩略图经常变啊,比如这次显示的是1.jpg,下次是3.jpg….
    怎么样实现:第一次随机分配之后,就不再改变?
    麻烦大神了~~谢谢!

    陈家锋2年前 (2016-03-28)回复
    • 代码就是实现随机分配的,如果不想随机分配,只能为每篇文章指定一张特色图像。

      高海鹏2年前 (2016-03-29)回复
  5. #9

    没有生效。

    阳江活动网2年前 (2016-01-21)回复
    • 复制的时候注意标点

      高海鹏2年前 (2016-01-21)回复
  6. #8

    太给力了,感谢高老师

    56度2年前 (2016-01-04)回复
  7. #7

    谢谢啊,解决了缩略图的问题了

    x2x3x2年前 (2015-11-18)回复
  8. #6

    搜索过来了,办法很赞!

    L2年前 (2015-11-01)回复
  9. #5

    你这个方法好是好,但是这样就会让图片目录生成另外一张缩略图。要是不另外生成缩略图直接读取文章第一张图那就完美些。

    牛吧2年前 (2015-10-24)回复
  10. #4

    wordpress dux 。文章里只有一张外链图,然后能否首页直接读取文章的外链图做为首页缩略图?

    礼物2年前 (2015-10-23)回复
  11. #3

    如果文章插入一张外链图片。然后能否当成缩略图显示出来哦。你的方法获取自己上传的第一张图作为缩略图是可以,那要是我插入的是一张外链图就不显示了。

    礼物2年前 (2015-10-23)回复
    • 这种方法确实是不支持外链图片的,具体的实现方法我也不清楚,没那技术啊。

      高海鹏2年前 (2015-10-23)回复
  12. #2

    老师,我想问一下,我用了跟你一样的主题,为啥我的点注册用户确没有弹窗出来,你的就可以呢?

    小宽哥2年前 (2015-10-17)回复
    • PHP版本要确保在5.4以上。

      高海鹏2年前 (2015-10-17)回复
  13. #1

    1.3分享下,同主题看看

    木木2年前 (2015-10-07)回复
    • 我也是在网上搜索找到的,360搜索“dux1.3下载”即可。

      高海鹏2年前 (2015-10-07)回复
点击这里给我发消息