在进行任何代码调用之前,必须明确你要调用的栏目ID。这是PHPCMS数据调用的核心依据。
操作路径:登录PHPCMS后台 -> 点击“内容” -> 点击“栏目管理”。
获取方法:在栏目列表中,将鼠标悬停在目标栏目名称上(或者点击“添加子栏目”),观察浏览器底部状态栏显示的URL链接。URL中通常包含catid=数字的部分,这个数字就是该栏目的唯一ID。例如,URL显示...&catid=15&...,则该栏目ID为15。请记下这个数字,后续代码中需要替换使用。
pc标签是PHPCMS模板引擎中最标准、最常用的数据调用标签。它封装了数据库查询逻辑,安全性高且语法简洁。
以下代码可以直接复制到模板文件(如index.html或category.html)的任意位置。这段代码会调用栏目ID为10的最新5篇文章。
参数详解:
catid="10,11,12"。id DESC表示按文章ID倒序排列(即最新发布的)。也可以使用hits DESC(按点击量排序)。$r代表单条数据的数组对象。在实际开发中,首页或推荐位往往只显示带有图片的文章。使用thumb="1"参数即可实现过滤。
关键点说明:
默认情况下,action="lists"只调用标题表(v9_title)的数据,不包含文章正文内容。如果你需要在列表页直接显示文章的description(描述)或部分正文,必须添加moreinfo="1"。
注意:开启moreinfo="1"会增加数据库查询负担,非必要情况不要开启,且不建议在大量数据(如超过50条)时使用。
当pc标签无法满足复杂需求(如跨表联查、特定字段模糊匹配)时,可以使用get标签直接执行SQL语句。此方法灵活性极高,但需要熟悉PHPCMS的数据库表结构。
PHPCMS V9的文章内容存储在v9_news表中(假设你的表前缀是默认的v9_)。以下代码演示如何通过SQL调用指定栏目数据并按点击量排序。
参数详解:
status=99代表文章已审核,未审核的文章状态不是99,必须加上此条件否则可能调用到不可见数据。如果你需要在模板中进行极其复杂的逻辑判断,或者不想使用标签语法,可以直接在模板文件中书写PHP代码。PHPCMS模板支持{php}标签。
这是最规范的底层调用方式,直接复用了系统的模型类。
```html {php} // 加载content_model模型类 $content_db = pc_base::load_model('content_model'); // 设置查询条件:catid=10,status=99 $where = array( 'catid' => 10, 'status' => 99 ); // 执行查询 // 参数1:条件数组,参数2:查询字段(为全部),参数3:限制条数,参数4:排序,参数5:是否查询主表 $data = $content_db->select($where, '', 5, 'id DESC', ''); // 打印数据查看结构(调试用,正式环境请删除) // print_r($data); {/php}注意:使用{php}块时,获取到的$data变量可以在后续的HTML代码中直接被{loop}标签使用,因为它们处于同一个模板上下文中。
调用出数据后,通常需要对显示的格式进行处理,以下是最常用的三个处理技巧。
数据库存储的是Unix时间戳(如1698723420),必须转换才能阅读。
{date('Y-m-d H:i:s', $r[inputtime])},显示为 2023-10-30 14:30:00。{date('Y-m-d', $r[inputtime])}。{date('n月j日', $r[inputtime])}。为了防止标题过长撑破布局,必须限制字数。使用str_cut函数。
{str_cut($r[title], 30, '...')}...。在调用图片时,务必处理图片不存在的情况,否则页面会显示“破图”图标。
```html {if $r[thumb]}
{/if}
```
说明:{IMG_PATH}是PHPCMS内置的静态图片路径常量,通常指向/statics/images/。你需要准备一张名为nopic.jpg的默认图片放在该目录下。
易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图