typecho制作Sitemap文件提交(XML版本)

向搜索提交网站的sitemap文件,帮助spider更好的抓取您的网站。

sitemap提交后,搜索会根据sitemap了解网站中数据情况。

360,今日头条,百度工具都提供了这方面的接口

sitemap数据能帮助搜索改进抓取策略,不能决定收录量级,也不能决定搜索排名。

总之,对网站文字的收录抓取都有不少的好处,在这里,就通过typecho生成Sitemap.xml功能,应该也有这方面的插件,不太了解~~

下面分享的功能只是核心的代码执行功能,如果要整合到自己的网站,还需要额外做一个开关去触发执行下面的功能哦!

  1. // 生成地图
  2. function getxml(){
  3. $doc = new \DOMDocument('1.0','utf-8');//引入类并且规定版本编码
  4. $urlset = $doc->createElement("urlset");//创建节点
  5. $db = Typecho_Db::get();
  6. $result = $db->fetchAll($db->select()->from('table.contents')
  7. ->where('status = ?','publish')
  8. ->where('type = ?', 'post')
  9. ->where('created <= unix_timestamp(now())', 'post') //添加这一句避免未达到时间的文章提前曝光
  10. ->limit(100)
  11. ->order('created', Typecho_Db::SORT_DESC)
  12. );
  13. if($result){
  14. foreach($result as $val){
  15. $val = Typecho_Widget::widget('Widget_Abstract_Contents')->push($val);
  16. $permalink = $val['permalink'];
  17. $created = date('Y-m-d', $val['created']);
  18. /*循环输出节点*/
  19. $url = $doc->createElement("url");//创建节点
  20. $loc = $doc->createElement("loc");//创建节点
  21. $lastmod = $doc->createElement("lastmod");//创建节点
  22. $urlset->appendChild($url);//
  23. $url->appendChild($loc);//讲loc放到url下
  24. $url->appendChild($lastmod );
  25. $content = $doc -> createTextNode($permalink);//设置标签内容
  26. $contime = $doc -> createTextNode($created);//设置标签内容
  27. $loc -> appendChild($content);//将标签内容赋给标签
  28. $lastmod -> appendChild($contime);//将标签内容赋给标签
  29. }}
  30. $doc->appendChild($urlset);//创建顶级节点
  31. $doc->save("./../sitemap.xml");//保存代码
  32. echo "<script>alert('地图生成')</script>";
  33. }

效果如图:

QQ图片20200825163909.png

获取连接后提交到各个搜索工具平台

f1a1718b690a4ec2a9def0043601db37_tplv-em5hxbkur4-noop.png

文章由官网发布,如若转载,请注明出处:https://www.veimoz.com/618
2 条评论
7k

发表评论

已有 2 条评论

  1. Sawyer     Android /    Chrome
    2021-10-06 09:56

    这个要怎么整合啊,有现成得插件吗?

    1. 【管理员】Vv     Win 10 /    Chrome
      2021-10-06 10:19

      @Sawyer

      没有现成的插件,就是一个小功能,一般主题可以整合进去

!