给WordPress新站改模板调用分类缩略图时遇到了一个问题, 有个模块要调用缩略图显示,如下图:
但是在如何获取分类文章循环输出头疼了一天之后,循环出来之后又为缩略图调取方式头疼。最开始的策略(别人写好策略)的直接获取文章的特色图片,而我因为模板的原因,基本上习惯了不特殊设置特色图片,因为Grace可以自动获取第一张图片做特色图
。所以这种方法调用。图基本都是挂掉的。好了不废话了,进入今天的正题。
WordPress获取缩略图thumbnail调取最佳策略实践
首先优先级第一肯定是文章特色图片,如果没有设置特色图片,那么就调取文章里第一张图片来当缩略图,如果文章内也没有图的话,就直接调用主题设置好的默认缩略图,这样在各种场景都能有图可用。
画了一张思维导图,简单明了。
参考代码:
代码参考下边的文章:
- wordpress 缩略图功能函数 the_post_thumbnail
- WordPress获取文章缩略图函数:get_the_post_thumbnail
下边是我的。需要的拿走。细节可以自己调整。
使用方法:
把下面代码放到你主题的functions.php
里
然后在需要调用的地方调用 dm_the_thumbnail()
即可
调用实例:
代码语言:javascript复制<img src="<?php dm_the_thumbnail() ?>" />
functions.php代码
代码语言:javascript复制/*
* WordPress获取缩略图thumbnail调取最佳策略实践
文章:https://www.zuanmang.net/5288.html
项目基于:https://www.cnblogs.com/bojuetech/p/4891470.html
转载请不要删除此段,不完整转载误人误己!
钻芒博客:www.zuanmang.net (这段可以删233)
*/
// 缩略图开始
if ( has_post_thumbnail() )
the_post_thumbnail( 'thumbnail' );
function dm_the_thumbnail() {
global $post;
// 判断该文章是否设置的缩略图,如果有则直接显示
if ( has_post_thumbnail() ) {
echo the_post_thumbnail();//这里直接输出特色图片
} else { //如果文章没有设置缩略图,则查找文章内是否包含图片
$content = $post->post_content;
preg_match_all('/<img.*?(?: |\t|\r|\n)?src=['"]?(. ?)['"]?(?:(?: |\t|\r|\n) .*?)?>/sim', $content, $strResult, PREG_PATTERN_ORDER);
$n = count($strResult[1]);
if($n > 0){ // 如果文章内包含有图片,就用第一张图片做为缩略图
echo $strResult[1][0] ;
}else { // 如果文章内没有图片,则用默认的图片。
echo get_stylesheet_directory_uri() . '/img/thumb.png'; //具体路径根据自己调整
}
}
}
// 缩略图结束