如何在DedeCMS列表页显示文章内容的第一张原图而非缩略图?

DedeCMS列表页模板中,使用以下代码调用文章内容的第一张原图(非缩略图):,,“php,{dede:field name='body' function='GetTopImage(@me)'/},

DedeCMS中,列表页调用文章内容第一张原图片(非缩略图)的方法如下:

方法一:通过修改include/extend.func.php文件实现

1、修改include/extend.func.php文件

打开include/extend.func.php文件。

在文件末尾添加以下代码:

     //取第一张图地址
     function firstimg($str_pic) {
         $str_sub = substr($str_pic, 0, 7) . ".jpg"; //删除缩略图字符串最后七位,然后再补上后缀.jpg
         return $str_sub;
     }

2、在模板文件中调用

在模板文件中使用以下标签调用文章的第一张原图:

     [field:litpic function='firstimg(@me)'/]

或者:

     <img src="{dede:field name='litpic' function="firstimg(@me)"/}" />

方法二:通过自定义函数getBodyonepic实现

1、创建自定义函数

打开include/extend.func.php文件。

在文件末尾添加以下代码:

     /**
      * 文章内容提取第一张图片
      *
      * @access    public
      * @param     string  $id        文档id
      * @param     string  $addField    字段名
      * @return    string
      */
     if(!function_exists('getBodyonepic')) {
         function getBodyonepic($id, $addField='body') {
             global $dsql;
             $row = $dsql>GetOne("SELECT a.litpic,c.addtable FROM #@__archives AS a LEFT JOIN #@__channeltype AS c ON a.channel=c.id where a.id='$id'");
             $addtable = trim($row['addtable']);
             if($row['litpic'] == '' || $row['litpic'] == '') {
                 $litpic = $GLOBALS['cfg_cmspath'].'/images/defaultpic.gif';
             }
             $row = $dsql>GetOne("SELECT $addField FROM$addtable WHERE aid=$id");
             $body = $row["$addField"];
             preg_match_all("/<img([^>]*)\s*src=('|\")([^'\"]+)('|\")/",$body,$matches);
             $imgsrc_arr = array_unique($matches[3]);
             $result = $imgsrc_arr[0] ? $imgsrc_arr[0] : $litpic;
             return $result;
         }
     }

2、在模板文件中调用

如何在DedeCMS列表页显示文章内容的第一张原图而非缩略图?

在模板文件中使用以下标签调用文章的第一张原图:

     [field:id function=getBodyonepic(@me)/]

或者:

     <img src="{dede:field.id function=getBodyonepic(@me)/}" />

相关问答FAQs

1、Q1: 为什么需要调用文章的第一张原图而不是缩略图?

A1: 调用文章的第一张原图而不是缩略图可以避免因缩略图变形或显示不完整而影响页面美观和用户体验,原图通常具有更高的分辨率和更完整的内容展示,能够更好地传达信息和吸引用户。

2、Q2: 如果文章内容中没有图片,会显示什么?

A2: 如果文章内容中没有图片,通常会显示一个默认的图片,这个默认图片的路径可以在代码中进行设置,例如在上述代码中的$litpic = $GLOBALS['cfg_cmspath'].'/images/defaultpic.gif';这一行,如果没有设置默认图片,可能会显示一个空白或占位符。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1225806.html

(0)
未希的头像未希新媒体运营
上一篇 2024-10-19
下一篇 2024-10-19

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

免费注册
电话联系

400-880-8834

产品咨询
产品咨询
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购  >>点击进入