pbootcms生成的sitemap.xml中增加tag标签链接

能金SEO SEO建站必备 2022-04-21 707 0

效果介绍

pbootcms生成的sitemap.xml和sitemap.txt中默认是不含tag标签链接的,如果想增加怎么办,下来来介绍下如何二开实现。实现后如下图,所有的tag链接都会进去。

微信号:Njkj-6688
添加微信好友, 获取相关信息
复制微信号

实现步骤

1、实现sitemap.xml中增加tag页面url

打开/apps/home/controller/SitemapController.php,找到echo $str . "\n</urlset>";在上方增加:

$parser_model = model('home.Parser');
if (! ! $rs = $parser_model->getSortTags('')) {
    $tags = implode(',', $rs); // 把栏目tags串起来
    $tags = array_unique(explode(',', $tags)); // 再把所有tags组成数组并去重
    foreach ($tags as $key2 => $value2) {
        if (! in_array($value2, array_column($tags, 'tags'))) { // 避免重复输出
            $url_rule_type = $this->config('url_rule_type') ?: 3;
            if ($url_rule_type == 3) {
                $link2 = Url::home('tag=' . urlencode($value2), '');
            } else {
                $link2 = Url::home('tag/' . urlencode($value2));
            }
            $str .= $this->makeNode($link2, date('Y-m-d'), '0.80');
        }
    }
}

截图:

2、实现sitemap.txt中增加tag页面url

打开/apps/home/controller/SitemapController.php,找到echo $str;在上方增加:

$parser_model = model('home.Parser');
if (! ! $rs = $parser_model->getSortTags('')) {
    $tags = implode(',', $rs); // 把栏目tags串起来
    $tags = array_unique(explode(',', $tags)); // 再把所有tags组成数组并去重
    foreach ($tags as $key2 => $value2) {
        if (! in_array($value2, array_column($tags, 'tags'))) { // 避免重复输出
            $url_rule_type = $this->config('url_rule_type') ?: 3;
            if ($url_rule_type == 3) {
                $link2 = Url::home('tag=' . urlencode($value2), '');
            } else {
                $link2 = Url::home('tag/' . urlencode($value2));
            }
            $str .= get_http_url() . $link2 . "\n";
        }
    }
}

截图:


完成以上两步后即可实现sitemap.xml和sitemap.txt中调用tag链接。


评论