首页 > 其他分享 >PbootCMS生成的sitemap.xml中增加tag标签链接

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

时间:2024-09-27 10:03:55浏览次数:8  
标签:xml tags tag scode array php SitemapController sitemap

要在PBootCMS中实现在sitemap.xml中包含标签(tag)链接,可以通过修改相关模型和控制器来实现。以下是详细的步骤和代码示例:

步骤

  1. 修改 SitemapModel 类
    • 在 SitemapModel.php 中增加获取指定分类标签的方法。
  2. 修改 SitemapController 类
    • 在 SitemapController.php 中增加处理标签链接的部分。

修改 SitemapModel 类

  1. 打开 SitemapModel.php 文件

    • 文件路径:/apps/home/model/SitemapModel.php
  2. 增加 getSortTags 方法

    在 SitemapModel.php 文件的第 78 行后面增加以下代码:

    public function getSortTags($scode)
    {
        $join = array(
            array(
                'ay_content_sort b',
                'a.scode=b.scode',
                'LEFT'
            ),
            array(
                'ay_model c',
                'b.mcode=c.mcode',
                'LEFT'
            )
        );
    
        $scode_arr = array();
        if ($scode) {
            // 获取所有子类分类编码
            $this->scodes = array(); // 先清空
            $scodes = $this->getSubScodes(trim($scode)); // 获取子类
            // 拼接条件
            $scode_arr = array(
                "a.scode in (" . implode_quot(',', $scodes) . ")",
                "a.subscode='$scode'"
            );
        }
    
        $result = parent::table('ay_content a')->where('a.status=1')->where("c.type=2 AND a.tags<>''")
            ->where($scode_arr, 'OR')
            ->join($join)
            ->order('a.visits DESC')
            ->column('a.tags');
    
        return $result;
    }

修改 SitemapController 类

  1. 打开 SitemapController.php 文件

    • 文件路径:/apps/home/controller/SitemapController.php
  2. 增加处理标签链接的部分

    在 SitemapController.php 文件的第 73 行后面增加以下代码:

    if (!empty($rs = $this->model->getSortTags(''))) {
        $tags = implode(',', $rs); // 把栏目tags串起来
        $tags = array_unique(explode(',', $tags)); // 再把所有tags组成数组并去重
    
        foreach ($tags as $key2 => $value2) {
            if (!in_array($value2, array_column($data, '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');
            }
        }
    }
 

通过以上步骤,可以在PBootCMS的sitemap.xml中包含标签(tag)链接,确保网站地图包含所有必要的链接。记得在修改前做好备份,以防万一。

标签:xml,tags,tag,scode,array,php,SitemapController,sitemap
From: https://www.cnblogs.com/hwrex/p/18435099

相关文章

  • 易优CMS模板文件不存在:./template/pc/index_tags.htm-eyoucms
    当你在使用易优CMS或其他类似的CMS系统时,如果遇到“模板文件不存在:./template/pc/index_tags.htm”的提示,这意味着系统试图加载的标签(tag)首页模板文件不存在。为了解决这个问题,你需要手动创建这个模板文件,并根据需要进行相应的配置和修改。具体步骤确定模板文件路径确认模......
  • tagcloud.js 实现3d 云标签
    我这个布局是准备在中间放一张图片,两边的便签在图片的左右两边区域动。中间图片自己放,每个标签鼠标放上去会放大并停止。效果如下:3d云标签注意:标签样式可以自行修改,tagcloud参数配置中,如果有的标签在区域内边界会被遮住,就通过radius和direction调节即可。完整代码如下......
  • 查询YOLO标签共有几类。针对文件夹中所有的xml文件,查询一下xml文件中object下的name共
    importosimportxml.etree.ElementTreeasETdefcount_object_names(folder_path):#存放不同name的集合names_set=set()#遍历文件夹中的所有文件forfilenameinos.listdir(folder_path):iffilename.endswith('.xml'):#确保处理......
  • 【C#】文件读取 -- .xml文件读取
    .xml文件读取与写入[实现效果][实现编程]///<summary>///创建xml配置///</summary>///<paramname="path">path,如:x:\\xxxx\\xxx.xml</param>privatevoidcreateXmlText(stringpath){if(string.IsNullOrEmpty(path))return......
  • springboot 工程中 SpringApplication.run方法 可以指定加载"applicationContext.xml"
    在SpringBoot应用程序中,SpringApplication.run()方法默认使用自动配置和基于Java的配置(如使用@Configuration注解的类),而不是传统的XML配置文件(如applicationContext.xml)。SpringBoot的设计理念之一就是简化配置,鼓励使用注解和Java配置来代替XML配置。然而,如果你......
  • java解析xml
    参考资料水平有限,欢迎交流千问ai阿伟的反射知识学习泛型知识学习软件设计模式(java版)程细柱目标xml<?xmlversion="1.0"encoding="UTF-8"?><conf><farm>SGFarm</farm><student><name>李四</name>&......
  • 万象更新 Html5 - js: js 的跨域请求 XMLHttpRequest
    源码https://github.com/webabcd/Html5作者webabcd万象更新Html5-js:js的跨域请求XMLHttpRequest示例如下:js\XMLHttpRequest.html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>XMLHttpR......
  • XML 数据类型有问题
    我想将XML文件转换为CSV。但是,我不断收到错误AttributeError:'NoneType'objecthasnoattribute'integer'。xmlparse=Xet.parse('AppleMusicLibrary.xml')root=xmlparse.getroot()foriinroot:Track_ID=i.find("Tack......
  • XMLHttpRequest、Fetch、Axios和AJAX的关系
    一、基于http协议用于前后端通信的工具1、XMLHttpRequest(原生JS对象)XMLHttpRequest(XHR)是原生JavaScript对象。通过XMLHttpRequest可以在不刷新页面的情况下请求特定URL,获取数据。特性:浏览器广泛支持功能丰富:可以跟踪请求的状态、支持进度事件、文件上传、同步......
  • DataGridView DataGridViewCheckBoxColumn 实现禁用效果,因为默认的不带禁用效果
    ///<summary>///DataGridViewDisableCheckBoxColumn///自定义disablecheckbox列实现禁用效果///</summary>publicclassDataGridViewDisableCheckBoxColumn:DataGridViewCheckBoxColumn{publicDataGridViewDisableCheckBoxColumn(){this.......