{dede:arclist titlelen=25 row='25'}
[field:title/]
{/dede:arclist}
上述代码中的文章列表标签在默认情况下无法被正确解析。为了解决这一问题,我们可以仿照首页的方法,引入 arc.partview.class.php 文件。这是一个视图类,能够有效解析这些复杂的标签。 接下来,我们将对 makehtml_map.php 文件进行修改,具体步骤如下:
1. 将以下代码:
require_once(DEDEINC."/dedetag.class.php");
替换为:
require_once(DEDEINC."/arc.partview.class.php");
2. 将以下代码:
$dtp = new DedeTagParse();
$dtp->LoadTemplet($tmpfile);
$dtp->SaveTo($cfg_basedir.$murl);
替换为:
$dtp = new PartView();
$GLOBALS['_arclistEnv'] = 'index';
$dtp->SetTemplet($tmpfile);
$dtp->SaveToHtml($cfg_basedir.$murl);
3. 将以下代码:
$dtp->Clear();
注释掉,改为:
//$dtp->Clear();
4. 最后,将以下代码:
$murl = $cfg_cmspath."/data/sitemap.html";
$tmpfile = $cfg_basedir.$cfg_templets_dir."/plus/sitemap.htm";
替换为:
$murl = $cfg_cmspath."/sitemap.html"; // 将生成的网站地图放在网站根目录下,避免 data 目录不被蜘蛛抓取
$tmpfile = $cfg_basedir.$cfg_templets_dir."/".$cfg_df_style."/sitemap.htm"; // 同时将网站地图模板移至默认模板文件夹
完成以上修改后,Dedecms 的所有标签,包括文章列表标签,都可以被正确解析并应用到网站地图中。这种方法不仅提升了网站地图的功能性,还为搜索引擎优化(SEO)提供了更好的支持。通过合理的代码调整,我们可以让网站结构更加清晰,从而吸引更多流量和用户关注。 希望以上内容对您有所帮助!