如何在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 23:55
下一篇 2024-10-19 23:58

相关推荐

  • 如何使用DedeCMS创建并管理我的网站?

    您的网站使用DedeCMS(织梦内容管理系统)构建,这是一个流行的开源PHP网站管理平台,适用于创建和管理动态网站。如果您需要进一步的帮助,请提供更多详细信息。

    2024-11-20
    012
  • DEDECMS中的时间显示如何设置为多少分钟前?

    您的问题似乎不完整,请提供更详细的信息或上下文,以便我能更准确地回答您。如果您是在询问dedecms(一个内容管理系统)的安装、配置、使用或其他相关问题,请具体说明需要了解的内容,我会很乐意为您提供帮助。

    2024-11-08
    020
  • Dede如何查看文章数量?

    在 DedeCMS(织梦内容管理系统)中,查看文章数量的方法如下:,,1. 登录后台管理系统。,2. 进入“内容管理”模块。,3. 选择“文章管理”。,4. 在右侧列表中即可看到所有文章的标题、作者、发布时间等信息。

    2024-11-07
    019
  • 织梦DedeCMS核心目录知识有哪些要点?

    织梦DedeCMS核心目录知识大全背景介绍织梦DedeCMS是一款流行的开源内容管理系统(CMS),广泛用于企业建站和信息管理,了解其目录结构和文件功能对于开发者进行二次开发、安全管理和界面定制至关重要,本文将详细介绍织梦DedeCMS的核心目录结构及其主要文件的作用,以帮助开发者更好地理解和使用该CMS,目录……

    2024-11-02
    0313

发表回复

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

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