站长视角
用户至上

wordpress dux主题文章缩略图不显示随机图,第一张图优化

VPS Hosting

wordpress dux主题文章缩略图在没有设置特色图片的情况下,如何让它显示一张随机的图片,或者默认显示文章中的第一张图片作为缩略图呢?

DUX主题中缩略图的展示权重为:上传的特色图像、填写的外链缩略图输入、自动获取文章第一张图,所以如果你的文章上传了特色图像或使用了外链缩略图输入,那么该功能无法启用;
自动的缩略图也可以很美观,前提是可能需要自定义缩略图后缀字符,这个是根据自己站点需要来的。
自动的缩略图也可以使用主题设置中的图片异步加载,如果你开启了这个功能的话,所以在速度上也不会影响太大,除非你的外链图资源很差。

自动获取文章第一张图作为缩略图的使用场景:
使用DUX主题之前的文章没有缩略图功能;
使用DUX主题之前的文章没有上传特色图像;
文章图片资源是外链图或托管在第三方服务器上;
文章是采集的,不打算使用本地图片;
自动的缩略图简单又高大上。

仔细查看主题文件里面的文件,找到控制其缩略图的函数文件:functions-theme.php
在这个文件中有一个函数:_get_post_thumbnail
修改成以下的函数,就可以显示第一张图作为特色图片了

function _get_post_thumbnail($size = 'thumbnail', $class = 'thumb') {
global $post;
$html = '';
if (has_post_thumbnail()) {

/*$domsxe = simplexml_load_string(get_the_post_thumbnail());
$src = $domsxe->attributes()->src;

$src_array = wp_get_attachment_image_src(_get_attachment_id_from_src($src), $size);
$html = sprintf('<img data-src="%s" class="%s"/>', $src_array[0], $class);*/

$domsxe = get_the_post_thumbnail();
// print_r($domsxe);
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/random/'.$random.'.jpg';
}
$html = sprintf('<img data-src="%s" class="thumb">', $post_thumbnail_src);
}
return $html;
}


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

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

关于 傲云

傲云,为您的网站提供全球顶级IDC资源!提供秒级响应、性能卓越、安全稳定的云计算服务,助力企业快速发展。

赞(0) 打赏
未经允许不得转载:傲盾互联-帮助文档 » wordpress dux主题文章缩略图不显示随机图,第一张图优化
香港L5630 8G SSD240G 3IP 5M原价850,5.1活动价511,续费同价
VPS Hosting

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏