Emlog (记录)在首页显示文章图片数量方法
发布在:网站学习 评论: 7 条评论

Emlog (记录)在首页显示文章图片数量方法

发表于:2019-02-14 11:08:20      发布在:网站学习      评论:7 条评论

一、获取附件图片数量

本方法实际获取的是文章附件的数量,而非只是图片的数量,如果你的文章含有文件附件,列表也会显示成图片数量。所以此方法最适合于文章图片特别多而且没有附件的博客

1.在module.php里面添加:

<?php
//图片数量
function pic_num($attnum){
  if ($attnum > 0) {
    echo '<span class="attnum" title="此文有 '.$attnum.' 张图片">',$attnum,'</span>';
  }
}?>

2.在首页需要的调用的位置添加:

 <?php pic_num($value['attnum']); ?>

二、获取文章外链图片数量和数据库上传图片数量

在制作emlog模版列表时,为了排版有时会需要判断文章内的外链图片与数据库上传的图片数量,通过判断图片数量就可以很好的美化列表模版了,有需要的把函数代码复制到emlog模板文件夹下的module.php文件里,然后在列表页或者内容页需要的地方写上调用代码即可。

1. 在moudle.php里面添加

<?php
function wrz_imgcount($content){
//正则获取文章内的外链图片数量
preg_match_all("|<img[^>]+src=\"([^>\"]+)\"?[^>]*>|is", $content, $imgarr);
$result = $imgarr[1];
return count($result);
}
function wrz_filecount($logid){
//查询数据库统计文章内上传的图片数量
$db = Database::getInstance();
$sql = "SELECT COUNT(*) AS `filepath` FROM ".DB_PREFIX."attachment WHERE blogid=$logid AND (`filepath` LIKE '%jpg' OR `filepath` LIKE '%gif' OR `filepath` LIKE '%png' OR `filepath` LIKE '%jpeg') and `filepath` not like '%thum-%' ORDER BY `aid` asc";
$result = $db->fetch_array($db->query($sql));
$count = $result['filepath'];
return $count;
}
?>

2.调用方法:

wrz_imgcount函数是正则获取文章内的外链图片数量,调用代码:

<?php echo wrz_imgcount($content)?>

wrz_filecount函数是通过查询数据库统计文章内上传的图片数量,调用代码:

<?php echo wrz_filecount($logid)?>


评论
你好,访客
[私密评论]今天在这里签到啦,又学了一些建站知识! 时间:下午7:11:28
评论时间:2019-02-23 19:11:43 回复
不错,很专业。
评论时间:2019-02-18 12:44:46 回复
@seo:你做seo很专业!
评论时间:2019-02-18 14:15:37 回复
这个实现方法跟xiu主题一样吧
评论时间:2019-02-17 15:48:22 回复
@typecho模板:差不多,都是正则匹配文章内容有多少图片,之后判断有就图显示图片数量
评论时间:2019-02-18 10:25:00 回复
@WRZ:厉害了
评论时间:2019-02-18 12:46:45 回复
学习了,谢谢谢大佬
评论时间:2019-02-14 14:05:51 回复