专注CJ联盟
不止CJ联盟

DUX 1.8主题代码优化:实现文章首图作为文章缩略图

本博客使用的为DUX 1.8主题,尽管在之前有好友给了1.9和2.0版本,但均存在或多或少的问题。而我手上的1.8版本则在各方面功能上未发现任何缺失。1.8主题我上传在CJ操作交流QQ群了,

1.9版本在1.8基础上做了一个更新:新增自动获取文章第一张图作为缩略图。

而1.8以前的版本,则需要手动设置特色图像,或者用外链作为缩略图,如果均无设定,则用主题文件夹里的默认图片。

我还是比较偷懒的,能自动调用文章内图片作为缩略图,比较简单方便。因此,我在1.8版本上优化了下代码,实现了这个功能。主要是修改主题配置文件functions-theme.php这个文件里的_get_post_thumbnail函数来实现的,下面分享一下代码:

    function _get_post_thumbnail($size = 'thumbnail', $class = 'thumb') {
        global $post;
        $html = '';
        if (has_post_thumbnail()) {
            $domsxe = get_the_post_thumbnail();
            preg_match_all('/<img.*?(?: |\\t|\\r|\\n)?src=[\'"]?(.+?)[\'"]?(?:(?: |\\t|\\r|\\n)+.*?)?>/sim', $domsxe, $strResult, PREG_PATTERN_ORDER);
            $images = $strResult[1];
            foreach($images as $src){
                $html = sprintf('<img data-src="%s" class="thumb">', $src);
                break;
            }
        }else {
            $post_thumbnail_src = '';
            ob_start();
        ob_end_clean();
        $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
        $post_thumbnail_src = $matches [1] [0];   //获取该图片 src
        if(empty($post_thumbnail_src)){
            $random = mt_rand(1, 10);
            $post_thumbnail_src = get_bloginfo('template_url').'/img/pic/'.$random.'.jpg'; //随机选取/dux/img/pic/*.jpg作为缩略图
            }
            $html = sprintf('<img data-src="%s" class="thumb">', $post_thumbnail_src);
        }
        return $html;
    }

 

上面是随机选取文件夹里的1-10的图片作为无图片时的缩略图。如果你希望,无图片时固定使用某一张图片作为缩略图,那么用下面这段代码:

    function _get_post_thumbnail($size = 'thumbnail', $class = 'thumb') {
        global $post;
        $html = '';
        if (has_post_thumbnail()) {
            $domsxe = get_the_post_thumbnail();
            preg_match_all('/<img.*?(?: |\\t|\\r|\\n)?src=[\'"]?(.+?)[\'"]?(?:(?: |\\t|\\r|\\n)+.*?)?>/sim', $domsxe, $strResult, PREG_PATTERN_ORDER);
            $images = $strResult[1];
            foreach($images as $src){
                $html = sprintf('<img data-src="%s" class="thumb">', $src);
                break;
            }
        }else {
            $post_thumbnail_src = '';
            ob_start();
        ob_end_clean();
        $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
        $post_thumbnail_src = $matches [1] [0];   //获取该图片 src     if(empty($post_thumbnail_src)){
$post_thumbnail_src = get_bloginfo(‘template_url’).’/img/thumbnail.png’; //使用/dux/img/thumbnail.png作为默认缩略图(自己做张图片上传)
}
$html = sprintf(”, $post_thumbnail_src);
}return $html;

}

 

赞(0)
未经允许不得转载:赚刀博客 » DUX 1.8主题代码优化:实现文章首图作为文章缩略图

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

赚刀博客——专注CJ联盟,不止CJ联盟

联系小龙虾CJ联盟交流群