这篇文章将为大家详细讲解有关phpcms在前台文章列表前显示分类名称的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
1、打开phpcms\caches\caches_commons\caches_data\category_content_1.cache.php
return array (
1 =>
array (
'catid' => '1',
'siteid' => '1',
'type' => '1',
'modelid' => '0',
'parentid' => '0',
'arrparentid' => '0',
'child' => '1',
'arrchildid' => '1,2,3,5,162',
'catname' => '网站介绍',
'style' => '',
'image' => '',
'description' => '',
'parentdir' => '',
'catdir' => 'about',
'url' => '/html/about/',
'items' => '0',
'hits' => '0',
'setting' => 'array (
\'ishtml\' => \'1\',
\'template_list\' => \'default\',
\'page_template\' => \'page\',
\'meta_title\' => \'\',
\'meta_keywords\' => \'\',
\'meta_description\' => \'\',
\'category_ruleid\' => \'1\',
\'show_ruleid\' => \'\',
\'repeatchargedays\' => \'1\',
)',
category_content_1.cache.php
可以看到,这里缓存了所有栏目类别的详细信息,其中就有我们需要的
'catname' => '网站介绍',
2、打开phpcms\modules\content\classes\content_tag.class.php
/**
* 列表页标签
* @param $data
*/
public function lists($data) {
$catid = intval($data['catid']);
if(!$this->set_modelid($catid)) return false;
if(isset($data['where'])) {
$sql = $data['where'];
} else {
$thumb = intval($data['thumb']) ? " AND thumb != ''" : '';
if($this->category[$catid]['child']) {
$catids_str = $this->category[$catid]['arrchildid'];
$pos = strpos($catids_str,',')+1;
$catids_str = substr($catids_str, $pos);
$sql = "status=99 AND catid IN ($catids_str)".$thumb;
} else {
$sql = "status=99 AND catid='$catid'".$thumb;
}
}
$order = $data['order'];
$return = $this->db->select($sql, '*', $data['limit'], $order, '', 'id');
content_tag.class.php
3、在上述代码后加入以下代码
$TYPES = getcache('category_content_1','commons');//获取类别缓存2
foreach ($return as $key=>$v) {
$return[$key][typename]=$TYPES[$v['catid']]['catname'];//给lists标签返回的数组中增加一个类别字段
}
4、前台调用方法
{$v[typename]}
关于phpcms在前台文章列表前显示分类名称的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。