本站点在建站以来一直使用的知更鸟的主题,最近迁站服务器阿里,所以更换了主题,使用的是DUX3.0的主题,折腾下来,发现PC端一直不显示文章列表缩略图。
那么针对此问题分享出以下的解决方法(其他主题请自测)。
那么针对此问题分享出以下的解决方法(其他主题请自测)。
特点:
1.判断文章是否设置了特色图像,若有则显示特色图像;
2.若没有特色图像时,查找文章内容中是否包含图片,若有图片,则调用第一张图片作为缩略图;
3.文章若没有图片则随机调用images/thumimg目录下的一张图片。
1.判断文章是否设置了特色图像,若有则显示特色图像;
2.若没有特色图像时,查找文章内容中是否包含图片,若有图片,则调用第一张图片作为缩略图;
3.文章若没有图片则随机调用images/thumimg目录下的一张图片。
第一步:在主题根目录下的functions.php中 添加如下代码:
/**
*文章列表页缩略图显示 https://www.ydxinzuo.cn
*显示特色图像,或者文章内第一张图片,或者随机显示一张图片
*
**/
//缩略图调取
add_theme_support( 'post-thumbnails' );
function lerm_thumbnail() {
global $post;
if (has_post_thumbnail()) {
// 判断该文章是否已经设置了“特色图像”,如果有则直接显示该特色图像的缩略图
echo '<a class="thumbnail" title="' . get_the_title() . '" href="' . get_permalink() . '">';
the_post_thumbnail();
echo '</a>';
} else { //如果文章没有设置特色图像,则查找文章内是否包含图片
$content = $post->post_content;
preg_match_all('/<img />]*src=["|\']([^"|\']+)/i', $content, $strResult, PREG_PATTERN_ORDER);
$n = count($strResult[1]);
if ($n > 0) {
// 如果文章内包含有图片,则取第一张图片的缩略图;
echo '<a class="thumbnail" title="' . get_the_title() . '" href="'. get_permalink() .'" rel="bookmark"><img class="post-thumb" src="' . $strResult[1][0] . '" alt="' . get_the_title() . '" /></a>';
}else{
//如果文章内没有图片,则随机显示根目录下images/thumimg文件夹下的一张图片。
echo '<a class="thumbnail" title="' . get_the_title() . '" href="the_permalink()" rel="bookmark"><img class="post-thumb" src="'.get_template_directory_uri().'/images/thumimg/'.rand(1,10).'.jpg" alt="' . get_the_title() . '" /></a>';
}
}
}
*文章列表页缩略图显示 https://www.ydxinzuo.cn
*显示特色图像,或者文章内第一张图片,或者随机显示一张图片
*
**/
//缩略图调取
add_theme_support( 'post-thumbnails' );
function lerm_thumbnail() {
global $post;
if (has_post_thumbnail()) {
// 判断该文章是否已经设置了“特色图像”,如果有则直接显示该特色图像的缩略图
echo '<a class="thumbnail" title="' . get_the_title() . '" href="' . get_permalink() . '">';
the_post_thumbnail();
echo '</a>';
} else { //如果文章没有设置特色图像,则查找文章内是否包含图片
$content = $post->post_content;
preg_match_all('/<img />]*src=["|\']([^"|\']+)/i', $content, $strResult, PREG_PATTERN_ORDER);
$n = count($strResult[1]);
if ($n > 0) {
// 如果文章内包含有图片,则取第一张图片的缩略图;
echo '<a class="thumbnail" title="' . get_the_title() . '" href="'. get_permalink() .'" rel="bookmark"><img class="post-thumb" src="' . $strResult[1][0] . '" alt="' . get_the_title() . '" /></a>';
}else{
//如果文章内没有图片,则随机显示根目录下images/thumimg文件夹下的一张图片。
echo '<a class="thumbnail" title="' . get_the_title() . '" href="the_permalink()" rel="bookmark"><img class="post-thumb" src="'.get_template_directory_uri().'/images/thumimg/'.rand(1,10).'.jpg" alt="' . get_the_title() . '" /></a>';
}
}
}
第三步:主题根目录下img文件夹中新建thumimg文件夹,然后在里面放10张.jpg的图片即可;
如果觉得随机文章缩略图片不够用请调整上述代码中.rand(1,10)加大10的值。(注:要将图片的命名为1~20.jpg)
第四步:若想在博客显示一张默认的图片
文章中没有图片,也没有设置特色缩略图,不显示随机图片,只想显示一张默认图片
<img class="post-thumb" src="'.get_template_directory_uri().'/img/thumimg/'.rand(1,10).'.jpg" alt="' . get_the_title() . '" />
那么请将上述代码中:
‘.rand(1,10).jpg’换成你img/thumimg文件夹下“默认图片的名字”.jpg即可。
本文章未特殊注明的版权信息归本站所有,著名来源归原作者所有!
猜你喜欢
发表评论
电子邮件地址不会被公开。 必填项已用*标注
评论信息
杏子众创科技 2018-05-31 14:53
没遇到过,没有设置图片,随机显示还是蛮好