当前位置:首页 > 行业动态 > 正文

如何实现在Dedecms网站地图中通过标签调用获取文章列表?

Dedecms网站地图获取文章列表支持标签调用的方法是使用系统内置的标签函数,如arclist、list等。

Dedecms网站地图获取文章列表支持标签调用的方法

如何实现在Dedecms网站地图中通过标签调用获取文章列表?  第1张

在Dedecms(织梦内容管理系统)中,生成网站地图(sitemap.htm)是一个常见需求,默认情况下,sitemap.htm所支持的标签功能较为有限,无法满足一些复杂的展示需求,本文将详细介绍如何通过修改makehtml_map.php文件以支持更多标签调用,特别是文章列表标签。

方法步骤

1. 修改require_once 语句

需要修改makehtml_map.php 文件中的引用语句:

// 原代码
require_once(DEDEINC."/dedetag.class.php");
// 修改为
require_once(DEDEINC."/arc.partview.class.php");

这一步的目的是引入一个更强大的视图类PartView,它能够解析更多的标签。

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);

这里使用了PartView 类来替代DedeTagParse,并通过SetTemplet 方法设置模板文件。

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"; // 同时把网站地图模板改在默认的模板文件夹下

FAQs

Q1: 为什么需要修改makehtml_map.php 文件?

A1: 默认情况下,makehtml_map.php 使用的是dedetag.class.php 文件,其标签解析能力有限,通过修改为arc.partview.class.php,可以增强标签解析能力,从而支持更多复杂的标签调用,如文章列表标签。

Q2: 修改后的文件路径有什么作用?

A2: 修改文件路径的目的是确保生成的网站地图文件放置在网站的根目录下,这样有利于搜索引擎抓取,将模板文件放置在默认模板文件夹下,有助于统一管理和调用。

Dedecms网站地图获取文章列表支持标签调用的方法

背景介绍

Dedecms是一款功能强大的内容管理系统,广泛用于搭建各类网站,网站地图对于搜索引擎优化(SEO)非常重要,可以帮助搜索引擎更好地索引网站内容,本文将介绍如何在Dedecms中创建一个支持标签调用的网站地图,以获取文章列表。

准备工作

1、Dedecms版本:确保你的Dedecms版本支持自定义调用和标签功能。

2、网站地图文件:通常网站地图文件位于网站根目录下的map.xml。

实现步骤

1. 创建标签

在Dedecms后台,进入“标签管理”模块,创建一个新的标签,标签名称可以是任何有助于描述文章内容的词或短语。

2. 编写标签调用代码

在Dedecms的标签库中,编写一个用于获取指定标签文章列表的标签,以下是一个示例代码:

<?php
function tag_article_list($tagname, $pagesize = 10, $orderby = 'id', $ordertype = 'DESC') {
    global $dsql;
    $tagname = trim($tagname);
    $orderby = trim($orderby);
    $ordertype = trim($ordertype);
    $pagesize = intval($pagesize);
    $sql = "SELECT arc.id, arc.title, arc.addtime, arc.keywords, arc.onclick FROM dede_arc a 
            LEFT JOIN dede_tag tag ON a.id = tag.arcid 
            WHERE tag.tagname = '$tagname' 
            ORDER BY $orderby $ordertype 
            LIMIT 0, $pagesize";
    $dsql>SetQuery($sql);
    $dsql>Execute('tag_article_list');
    $rows = $dsql>GetRows();
    return $rows;
}
?>

3. 修改网站地图模板

在Dedecms的模板文件夹中,找到网站地图模板文件(通常是map.xml),并按照以下格式修改:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <!其他URL >
    <url>
        <loc>http://www.yoursite.com/tag/</loc>
        <changefreq>weekly</changefreq>
        <priority>0.8</priority>
    </url>
    <!标签文章列表 >
    <?php
    $articles = tag_article_list('你的标签名', 10, 'id', 'DESC');
    foreach ($articles as $article) {
    ?>
    <url>
        <loc>http://www.yoursite.com/a/<?php echo $article['id']; ?>/<?php echo GetNewFileName($article['title']); ?></loc>
        <lastmod><?php echo $article['addtime']; ?></lastmod>
        <changefreq>daily</changefreq>
        <priority>0.6</priority>
    </url>
    <?php
    }
    ?>
</urlset>

4. 保存并更新

保存修改后的网站地图模板文件,并更新网站地图,在Dedecms后台,进入“网站设置”模块,点击“更新网站地图”按钮。

通过以上步骤,你可以在Dedecms中创建一个支持标签调用的网站地图,从而方便地获取并展示特定标签下的文章列表,这有助于提高网站内容的可访问性和搜索引擎的收录效果。

0

随机文章