有时候Typecho想调用文章第二张图,或者在输出多图的时候想对多图顺序的一个调用
可以尝试下面的方法
function thumb($cid) {
if (empty($imgurl)) {
$rand_num = 10; //随机图片数量,根据图片目录中图片实际数量设置
if ($rand_num == 0) {
$imgurl = "随机图片存放目录/0.jpg?imageMogr2/format/webp";
//如果$rand_num = 0,则显示默认图片,须命名为"0.jpg?imageMogr2/format/webp",注意是绝对地址
}else{
$imgurl = "随机图片存放目录/".rand(1,$rand_num).".jpg?imageMogr2/format/webp";
//随机图片,须按"1.jpg?imageMogr2/format/webp","2.jpg?imageMogr2/format/webp","3.jpg?imageMogr2/format/webp"...的顺序命名,注意是绝对地址
}
}
$db = Typecho_Db::get();
$rs = $db->fetchRow($db->select('table.contents.text')
->from('table.contents')
->where('table.contents.type = ?', 'attachment')
->where('table.contents.parent= ?', $cid)
->where('table.contents.order= ?', 2)
->order('table.contents.cid',
Typecho_Db::SORT_ASC)
->limit(1));
$img = unserialize($rs['text']);
if (empty($img)){
echo $imgurl;
}
else{
echo '你的博客地址'.$img['path'];
}
}
以上代码放入Functions.php 文件中。
然后在想在调用的文件里放入以下代码,这里我放入的是首页位置。
前端输出显示:<?php echo thumb($this->cid); ?>
上面的代码里面
->where('table.contents.order= ?', 2)
第二张方法:
function thumbside($con) {
preg_match_all('/\<img.*?src\=\"(.*?)\"[^>]*>/i', $con, $thumbUrl); //通过正则式获取图片地址
preg_match_all('/\!\[.*?\]\((http(s)?:\/\/.*?(jpg|png))/i', $con, $patternMD); //通过正则式获取图片地址
preg_match_all('/\[.*?\]:\s*(http(s)?:\/\/.*?(jpg|png))/i', $con, $patternMDfoot);
if(count($thumbUrl[0])>1){
return $thumbUrl[1][1]; //当找到一个src地址的时候,输出缩略图
}else if(count($patternMD[0])>1){
return $patternMD[1][1];
}else if(count($patternMDfoot[0])>1){
return $patternMDfoot[1][1];
}else{
$rand_num = 5;
return Helper::options()->siteUrl."usr/themes/pure/randimg/".rand(1,$rand_num).".jpg?imageMogr2/format/webp";
}
}