Typecho输出文章附件内所有图片的函数

Typecho杂文 typecho 模板 图片 函数 皮肤 相册

typecho如果想做一个相册主题,或者相册分类的话,下面的代码很实用哦!

函数
functions.php中放入如下函数

//获取附件图片
function getAttachImg($cid) {
    $db = Typecho_Db::get();
    $rs = $db->fetchAll($db->select('table.contents.text')
            ->from('table.contents')
            ->where('table.contents.parent=?', $cid)
            ->order('table.contents.cid', Typecho_Db::SORT_ASC));
    $attachPath = array();
    foreach($rs as $attach) {
        $attach = unserialize($attach['text']);
        if($attach['mime'] == 'image/jpeg') {
            $attachPath[] = array($attach['name'], $attach['path']);
        }
    }
    return $attachPath;
}

然后在post.php中放入如下代码,即可输出当前文章附件中所有图片

<?php
$imgs = getAttachImg($this->cid);
foreach($imgs as $img) {
echo "<img src=\"$img[1]\" title=\"$img[0]\" class=\"post-item-img\">";
}
?>

香菇提示
函数文件中默认中只做了 image/jpeg mime类型的图片判断,可根据需要补充 image/png image/gif 等格式
将函数中的if判断

if($attach['mime'] == 'image/jpeg')

改为

if($attach['mime'] == 'image/jpeg'||$attach['mime'] == 'image/png'||$attach['mime'] == 'image/gif')

用处
配合一些前端框架什么的,即可做成一个typecho的相册模板,或者相册分类。

这里推荐一款可能十分优秀的typecho相册模板→《Photograph Theme for Typecho》

声明:本篇文章中的代码均来自《Photograph Theme for Typecho》模板中,该模板作者是个十分低调的香菇

13条评论

    Ryan

    我公然抄袭(●´∀`●)

    游客 Windows10 293天前回复

    Rinvay

    大佬,请教个问题pjax下如何刷新指定的DIV区域?

    游客 Windows10 442天前回复

      Jrotty
      @Rinvay

      pjax啊,推荐你看这人的文章https://kotori.love/archives/typecho-pjax.html

      作者 Windows10 442天前回复

    夏目贵志

    我王境泽就算是饿死也不会买这模板的~  
    这模板真不错,真香~

    游客 Windows10 442天前回复

      Jrotty
      @夏目贵志

      然而是免费的炒(mu)饭(ban)

      作者 Windows10 442天前回复

        夏目贵志
        @Jrotty

        挂羊头卖狗肉  
        @https://qqdie.com/archives/yodu.html

        游客 Windows10 442天前回复

          Jrotty
          @夏目贵志

          我说的是这篇文章里提到的模板,你我仿佛不在一个频道上

          作者 Windows10 442天前回复

            夏目贵志
            @Jrotty

            ... 看错了  哈哈哈  刚下班太累了 

            游客 Windows10 442天前回复

    香菇

    实际上 getAttachImg() 中只做了 image/jpeg mime类型的图片判断,可根据需要补充 image/png image/gif 等格式。

    游客 Windows10 442天前回复

      Jrotty
      @香菇

      补充上去啦,还有就是你的模板默认用了微博图床的链接,这样没用图床的人来启动你的模板,图片就显示gg了

      作者 Windows10 442天前回复

        香菇
        @Jrotty

        哈哈哈哈哈哈哈是吗不重要啦哈哈哈哈哈哈哈我jio得这种操作很皮很开心

        游客 Windows10 442天前回复

          Jrotty
          @香菇

          本来我以为直接复制代码就ok了,等我复制完点击发布文章后,才发现:哎哎!函数里怎么有个香菇的地址啊???于是又重新编辑了下下

          作者 Windows10 442天前回复

            香菇
            @Jrotty

            慧(shang)眼(ye)如(hu)炬(chui)

            游客 Windows10 442天前回复

智能推荐