• thinkphp飞天侠程序怎么写sitemap便于收录


    本文是 基于thinkphp3.1的  但是道理都是相通的!下面我吧代码贴出来供大家参考!

    <?php
    class SitemapAction extends BackendAction {
    
        public function _initialize() {
            parent::_initialize();
            $this->_mod = D('menu');
        }
    
        public function index() {
            //$tables = M()->db()->getTables();//获取网站所有的表
            $site_url = M('setting')->where(array('name'=>"site_url"))->limit(1)->find();
            $site_url = $site_url['data'];
    
            $str = '<?xml version="1.0" encoding="utf-8"?>'.PHP_EOL;
            $str .= '<urlset>'.PHP_EOL;
            // article 表
            $articles = M('article')->field('id,add_time,last_time')->select();
            foreach ($articles as $k => $v) {
                $str .= '<loc>'.$site_url.'index.php?m=index&amp;a=read&amp;id='.$v['id'].'</loc>'.PHP_EOL;
                if($v['last_time']){
                    $str .= '<lastmod>'.date('Y-m-d' ,$v['last_time']).'</lastmod>'.PHP_EOL;
                }else{
                    $str .= '<lastmod>'.date('Y-m-d' ,$v['add_time']).'</lastmod>'.PHP_EOL;
                }            
                $str .= '<priority>1.0</priority >'.PHP_EOL;
                $str .= '<changefreq> always </changefreq>'.PHP_EOL.PHP_EOL.PHP_EOL;
            }
            
            // nav表
            $nav = M('nav')->select();
            foreach ($nav as $k => $v) {
                $str .= '<loc>'.$site_url.'index.php?m=index&amp;a=cate&amp;id='.$v['id'].'</loc>'.PHP_EOL;
                $str .= '<lastmod>'.date('Y-m-d' ,time()).'</lastmod>'.PHP_EOL;          
                $str .= '<priority>1.0</priority >'.PHP_EOL;
                $str .= '<changefreq> always </changefreq>'.PHP_EOL.PHP_EOL.PHP_EOL;
            }
    
            // article_cate表
            $article_cate = M('article_cate')->select();
            foreach ($article_cate as $k => $v) {
                $str .= '<loc>'.$site_url.'index.php?m=index&amp;a=cate&amp;id='.$v['id'].'</loc>'.PHP_EOL;
                $str .= '<lastmod>'.date('Y-m-d' ,time()).'</lastmod>'.PHP_EOL;          
                $str .= '<priority>1.0</priority >'.PHP_EOL;
                $str .= '<changefreq> always </changefreq>'.PHP_EOL.PHP_EOL.PHP_EOL;
            }
    
    
            $str .='</urlset>'.PHP_EOL;
            file_put_contents(APP_PATH."/../Sitemap.xml", $str);
            echo '已经更新成功!可以到网站根目录下的Sitemap.xml查看!';
            echo '<script>alert("已经更新成功!可以到网站根目录下的Sitemap.xml查看!");</script>';
        }
    }

    暴力方法,喜欢可以自己拿去并修改成自己想要的咯!感谢大家

  • 相关阅读:
    PHP vscode+XDebug 远程断点调试服务器上的代码
    Wordpress 为用户或角色 role 添加 capabilities(权限)
    Wordpress 后台文章编辑区添加模板选择功能
    CentOS 7 编译安装最新版git
    WordPress 通过文章 URL 获取文章 ID
    Web 安全问题 rel="noopener nofollw"
    Wordpress 通过 post id 获取文章 url
    git放弃修改&放弃增加文件
    Wordpress 作者模板页中的自定义帖子类型分页问题
    PHP 删除 url 中的 query string
  • 原文地址:https://www.cnblogs.com/keli/p/7382285.html
Copyright © 2020-2023  润新知