如何在ECShop中调用特定分类的文章?

avatar
作者
猴君
阅读量:0
在ECShop中,可以通过修改模板文件或使用插件来实现调用指定分类的文章。具体方法如下:,,1. 打开ECShop后台,找到需要调用文章的模板文件,如index.dwtlist.dwt等。,2. 在模板文件中,找到需要插入文章的位置,添加以下代码:,,``php,{dede:sql name=get_articles sql="SELECT * FROM dede_article WHERE tid='指定分类ID' AND ismake='是' AND isdel='否' ORDER BY pubdate DESC"},`,,3. 将指定分类ID替换为实际的分类ID。,4. 在需要显示文章的地方,添加以下代码:,,`php,{dede:field name=title/},{dede:field name=writer/},{dede:field name=pubdate function="MyDate('m-d',@me)"/},{dede:field name=body/},``,,5. 保存模板文件并更新缓存。,,通过以上步骤,即可在ECShop中调用指定分类的文章。

直接修改调用语句

如何在ECShop中调用特定分类的文章?

1、修改index.php文件:在index.php中找到以下代码段:

 ' WHERE a.is_open = 1 AND a.cat_id = ac.cat_id AND ac.cat_type = 1'

将其修改为:

 ' WHERE a.is_open = 1 AND a.cat_id=5 AND a.cat_id = ac.cat_id AND ac.cat_type = 1'

这将使查询只返回分类ID为5的文章。

方法二:单独的函数调用

1、打开index.php文件:找到以下代码:

 $smarty->assign('new_articles', index_get_new_articles()); // 最新文章

在该代码下面增加如下代码:

 // 调用方法 $smarty->assign('class_articles_4', index_get_class_articles(4,6)); // 分类调用文章 // 调用多个就修改传进去的参数,以及模板接收的变量,其中上面的4就是文章分类ID,其中6是调用数量 $smarty->assign('class_articles_5', index_get_class_articles(5,6)); // 分类调用文章 $smarty->assign('class_articles_6', index_get_class_articles(6,6)); // 分类调用文章

2、创建index_get_class_articles函数:在lib_goods.php文件中增加以下函数:

如何在ECShop中调用特定分类的文章?

 /** 获得指定栏目最新的文章列表。 * @access private @return array */ function index_get_class_articles($cat_aid, $cat_num) {     $sql = "SELECT article_id, title, open_type, cat_id, file_url FROM " . $GLOBALS['ecs']->table('article') . " WHERE cat_id = " . $cat_aid . " and is_open = 1 LIMIT " . $cat_num;     $res = $GLOBALS['db']->getAll($sql);     $arr = array();     foreach ($res AS $idx => $row)     {         $arr[$idx]['id'] = $row['article_id'];         $arr[$idx]['title'] = $row['title'];         $arr[$idx]['short_title'] = $GLOBALS['_CFG']['article_title_length'] > 0 ? sub_str($row['title'], $GLOBALS['_CFG']['article_title_length']) : $row['title'];         $arr[$idx]['cat_name'] = $row['cat_name'];         $arr[$idx]['add_time'] = local_date($GLOBALS['_CFG']['date_format'], $row['add_time']);         $arr[$idx]['url'] = $row['open_type'] != 1 ? build_uri('article', array('aid' => $row['article_id']), $row['title']) : trim($row['file_url']);         $arr[$idx]['cat_url'] = build_uri('article_cat', array('acid' => $row['cat_id']));     }     return $arr; }

3、在模板中调用:在index.dwt模板文件中,添加以下代码以展示分类ID为8的文章列表:

 <!--{foreach from=$class_articles_8 item=article}--> <li><a href="{$article.url}" title="{$article.title|escape:html}"><!--{$article.short_title|truncate:15:true}--></a></li> <!--{/foreach}-->

相关问题与解答

1、如何查看分类的ID?

在ECShop后台管理界面中,进入“文章管理”或“分类管理”页面,可以看到每个分类的ID信息,这些ID会显示在分类列表的某一列中。

2、如果需要调用多个分类的文章怎么办?

如果需要调用多个分类的文章,可以在index.php文件中多次调用index_get_class_articles函数,每次传递不同的分类ID和调用数量,调用分类ID为4和5的文章,可以这样写:

```php

如何在ECShop中调用特定分类的文章?

$smarty->assign('class_articles_4', index_get_class_articles(4,6)); // 分类4的文章

$smarty->assign('class_articles_5', index_get_class_articles(5,6)); // 分类5的文章

```

然后在模板文件中分别展示这两个分类的文章列表。

小伙伴们,上文介绍了“ecshop调用指定分类的文章的方法介绍”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!