首先,在include/common.func.php文件的最下方加入以下代码:
// 获取顶级栏目图片
function GetTopTypeimg($id) {
global $dsql;
$row = $dsql->GetOne("SELECT typeimg,topid FROM dede_arctype WHERE id= $id");
if ($row['topid'] == '0') {
return $row['typeimg'];
} else {
$row1 = $dsql->GetOne("SELECT typeimg FROM dede_arctype WHERE id= $row[topid]");
return $row1['typeimg'];
}
}
上述代码的作用是定义一个名为GetTopTypeimg的函数,该函数接收一个参数$id,表示当前栏目的ID。函数内部通过查询数据库中的dede_arctype表来获取栏目图片(typeimg)和顶级栏目ID(topid)。如果当前栏目的顶级ID为0,则说明当前栏目是顶级栏目,直接返回其图片路径;否则继续查询顶级栏目的图片路径并返回。
完成以上步骤后,在模板中可以使用如下标签来调用顶级栏目的图片:
{dede:field name='typeid' function="GetTopTypeimg(@me)"/}
此标签将自动调用我们之前定义的GetTopTypeimg函数,并传入当前栏目的ID作为参数。这样,无论访问的是顶级栏目还是其下的任何子栏目,都会显示顶级栏目的图片,从而避免了重复上传相同图片的问题。
通过这种方式,不仅简化了操作流程,还提高了网站维护效率,让您的DedeCMS站点更加灵活和易于管理。同时,请确保在进行任何更改之前备份原始文件,以防万一出现错误可以迅速恢复原状。