if( !empty($typeid) && !preg_match('#,#', $typeid) ) {
$typeid = GetSonIds($typeid);
}
else {
$typeids = explode(',', $typeid);
foreach($typeids as $ttid) {
$typeidss[] = GetSonIds($ttid);
}
$typeidStr = join(',', $typeidss);
$typeidss = explode(',', $typeidStr);
$typeidssok = array_unique($typeidss);
$typeid = join(',', $typeidssok);
}
1. **判断条件**:如果 `$typeid` 不为空且不包含逗号,则直接调用 `GetSonIds()` 获取子栏目 ID。
2. **多栏目处理**:如果 `$typeid` 包含多个栏目 ID(以逗号分隔),则将其拆分为数组并遍历每个栏目 ID,调用 `GetSonIds()` 获取对应子栏目。
3. **去重与合并**:将所有子栏目 ID 合并为一个字符串,再转换为数组并去重,最后重新拼接成字符串。
完成上述修改后,保存文件并刷新缓存即可生效。这样,您就可以在模板中使用 `dede:likearticle` 标签时,同时获取多个栏目及其子栏目下的相关文章了。
例如,如果您希望从栏目 ID 为 1 和 2 的栏目及其子栏目中获取相关文章,可以在模板中使用以下代码:
{dede:likearticle typeid='1,2' row='10'}
[field:title/]
{/dede:likearticle}