在构建内容管理系统(CMS)时,实现文章页面调用同一分类栏目下的其他文章列表是一项常见的需求。本文将详细介绍如何通过Dedecms系统实现这一功能,并优化搜索引擎排名(SEO)。以下是具体实现步骤及代码示例:
首先,我们需要通过文章ID获取所属栏目的信息,然后查询该栏目下其他文章的详细数据。以下代码展示了如何在文章页面中调用与当前文章同一分类栏目的其他15篇文章列表,同时排除当前文章本身。
{dede:FIELD.aid runphp='yes'}
$aid = @me;
$sql = "select * from dede_archives where id=".$aid." limit 1";
$query = mysql_query($sql);
$row = mysql_fetch_array($query);
$typeid = $row["typeid"];
$sql = "SELECT * FROM dede_archives where id<>".$aid." and typeid =".$typeid." order by id desc limit 15";
$query = mysql_query($sql);
@me = "";
while($row = mysql_fetch_array($query)){
$id = $row["id"];
$title = cn_substr($row["title"],80,0);
$urlarray = GetOneArchive($id);
$url = $urlarray['arcurl'];
$time = strftime("%Y-%m-%d",$row["sortrank"]);
@me.= ''.$title.''.$time.' ';
}
{/dede:FIELD.aid}
以上代码的功能如下:
- 通过
{dede:FIELD.aid runphp='yes'}标签获取当前文章的ID。 - 根据文章ID查询数据库中的
dede_archives表,获取文章所属的栏目ID。 - 构造SQL语句,查询同一栏目下除当前文章外的其他文章,限制结果为15条。
- 使用
GetOneArchive方法获取每篇文章的具体URL地址。 - 最终生成HTML列表形式的文章链接,包含标题和发布时间。
如果希望调用的文章列表包含当前文章,可以将代码第七行中的id<>".$aid."部分删除。这样,查询结果将不再排除当前文章。
为了提高SEO效果,请注意以下几点:
- 确保每个文章页面的标题、描述和关键词具有唯一性。
- 合理设置文章发布时间格式,便于搜索引擎识别。
- 避免重复内容,确保调用的文章列表不会与其他页面产生完全相同的内容。
通过上述方法,您可以轻松实现Dedecms系统中文章页面的相关文章调用功能,同时优化网站的搜索引擎表现。希望这篇文章对您有所帮助!