一直以来,张戈博客都是用DX-SEO这个很好用的中文SEO插件生成的sitemap。今天整理电脑文件时,看到了以前收藏的生成sitemap.xml的php脚本,就随手打开看了看,发现这个代码只能生成主页和文章页的sitemap。果断百度了一下,发现网上分享的都大同小异,只有首页和文章页。感觉有点缺憾,反正今天也是闲着,就动手改造了一番,让这个代码更加完善,可以同时生成首页、文章、单页面、分类和标签的sitemap!

一、PHP代码

PHP

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

require(‘./wp-blog-header.php’);

header(“Content-type: text/xml”);

header(‘HTTP/1.1 200 OK’);

$posts_to_show = 1000;

echo ‘<?xml version=”1.0″ encoding=”UTF-8″?>’;

echo ‘’

?>

Diy By 张戈博客(http://zhangge.net)–>

daily

1.0

/* 文章页面 */

$myposts = get_posts( “numberposts=” . $posts_to_show );

foreach( $myposts as $post ) { ?>

monthly

0.6

/* 单页面 */

$mypages = get_pages();

if(count($mypages) > 0) {

foreach($mypages as $page) { ?>

<?php echo get_page_link($page->ID); ?>

<?php echo str_replace(” “,”T”,get_page($page->ID)->post_modified); ?>+00:00

weekly

0.6

/* 博客分类 */

$terms = get_terms(‘category’, ‘orderby=name&hide_empty=0′ );

$count = count($terms);

if($count > 0){

foreach ($terms as $term) { ?>

<?php echo get_term_link($term, $term->slug); ?>

weekly

0.8

/* 标签(可选) */

$tags = get_terms(“post_tag”);

foreach ( $tags as $key => $tag ) {

$link = get_term_link( intval($tag->term_id), “post_tag” );

if ( is_wp_error( $link ) )

return false;

$tags[ $key ]->link = $link;

?>

monthly

0.4

将以上代码保存为sitemap.php,传到网站根目录。手动访问查看效果,如:http://zhangge.net/sitemap.php

二、伪静态

①、Nginx

编辑已存在的Nginx伪静态规则,新增如下规则后(平滑)重启nginx即可:

1

rewrite ^/sitemap.xml$ /sitemap.php last;

②、Apache

编辑网站根目录的 .htaccess ,加入如下规则:

Shell

1

RewriteRule ^(sitemap)\.xml$ $1.php

做好伪静态规则后,就可以直接访问sitemap.xml看看效果了,比如 http://zhangge.net/sitemap.xml

三、纯静态

此部分内容补充于:2016年10月24日程序员节

看到很多朋友已经在问这个sitemap如何静态化,加快打开速度。毕竟每次重新生成绝对是一个耗能大户,而且还有可能被有心之人拿来作为攻击入口!

其实,张戈博客早就已经实现sitemap.xml静态化了,而且在后面的文章中也有提到=>【相关文章】

实现方法有多种,比如在Nginx的fastcgi缓存中取消xml文件的缓存屏蔽,或者使用张戈博客最早使用的php生成静态文件等。

在这里,我就分享一个自己一直在用的最简单的实现方法:Linux定时任务+wget定时生成sitemap.xml

具体实现:将sitemap.php放到某个不为人知的目录,然后定时使用wget去请求这个文件,并将数据保存为sitemap.xml存放到网站根目录就可以了!比如:

Shell

1

2

#每天在网站根目录生成一个sitemap.xml diypath为sitemap.php的实际位置

0 1 * * * wget -O /home/wwwroot/zhangge.net/sitemap.xml http://zhangge.net/diypath/sitemap.php  >/dev/null 2>&1

Ps:使用这个方法,注意sitemap.php里面的 require(‘./wp-blog-header.php’); 要改成 require(‘../wp-blog-header.php’); 也就是注意相对位置!

如果实在搞不清楚什么是相对路径,那么就用简单粗暴的方法:将网站根目录的sitemap.php重命名为一个只有自己知道的php文件,比如xml.php,然后如下添加任务:

Shell

1

2

#每天在网站根目录生成一个sitemap.xml(xml.php为自己重命名的php文件名称)

0 1 * * * wget -O /home/wwwroot/zhangge.net/sitemap.xml http://zhangge.net/xml.php  >/dev/null 2>&1

这样一来,就解决了sitemap.xml是动态数据问题了!

四、文章最后

①、确认无误之后,已开通sitemap权限的就可以前往百度站长平台提交了,没开通权限的可以发送申请邮件到百度站长平台管理员邮箱申请,并且将sitemap.xml使用a标签链接在网站底部即可。

②、代码使用很简单,可以根据需要增减内容,比如觉得标签不应该出现在sitemap里面的,可以将标签部分的php代码删除即可,但一定要注意不要误删除结尾的标签。

③、今天,把分类、单页面及标签的sitemap都整出来了,那开放适配专用sitemap的php代码也就可以继续完善下了,回头有时间我会整理总结一篇关于sitemap及开放适配的终结篇,敬请期待!

wordpress建立php站点地图,WordPress修改源文件生成完整站点地图(sitemap.xml)的php代码实例...相关推荐

  1. 腾讯地图api修改信息窗口样式_DOTA2 地图编辑器指南(二):总览

    做什么地图 作为一个打算把流程讲得详细一点的教程,是不太好做什么庞大的项目的.我们的目的还是学会制作工具和熟悉制作流程,只要学会了工具,就有能力实现自己心目中的项目了.到时候更加要求的其实是创意. 所 ...

  2. 如何使用WordPress建立一个博客、网站和论坛

    这篇文章将介绍如何使用WordPress建立一个博客.网站和论坛.WordPress是基于PHP的博客架设工具.它提供了一套开源的PHP代码以方便用户在支持PHP的主机上快速的建立博客.WordPre ...

  3. 我的世界服务器地图名称修改,《我的世界》修改地图名称颜色教程

    中很多玩家都看了别人的地图名称都是有颜色的,但是自己创建的地图都是灰色的名字一点都没有霸气,不吸引眼球,下面小编就为大家带来我的世界修改地图名称颜色教程,希望对各位玩家有所帮助. 这是标准的样子 然后 ...

  4. 教你创建Google网站地图Sitemap.xml(转)

    http://teachmyself.blog.163.com/blog/static/18881422920119895248288/ Sitemap.xml是 google搞出来的,也就是网站地图 ...

  5. java sitemap_JAVA 针对 sitemap.xml 文件读写修改操作

    UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层 ...

  6. wordpress 服务器_如何将WordPress从本地服务器移动到实时站点(2种方法)

    wordpress 服务器 One way to speed up your website development is to build your website locally on your ...

  7. 使用wordpress建立企业或博客网站新手教程

    前言   wordpress个开源的,知名的,拥有无数的插件和主题的知名blog/CMS php程序.全球数百万的网站通过wordpress建立或修改. 现在非常多的企业网站使用wordpress来建 ...

  8. Vite(三)部署静态站点(wordpress与hugo与Vercel、CI/CD、Travis CI、GitLab CI)、环境变量与模式、服务端渲染(SSR)

    Vite(三)部署静态站点(wordpress与hugo与Vercel.CI/CD.Travis CI.GitLab CI).环境变量与模式.服务端渲染(SSR) 文章目录 Vite(三)部署静态站点 ...

  9. 如何使用WordPress建立亚马逊会员商店

    Do you want to create an Amazon affiliate store using WordPress? 您是否要使用WordPress创建亚马逊会员商店? An Amazon ...

最新文章

  1. 【jstl】jstl的基本操作
  2. 一次SQL查询优化原理分析(900W+数据,从17s到300ms)
  3. Linux 小知识翻译 - 「cron」
  4. 【SpringBoot零基础案例05】【IEDA 2021.1】若SpringBoot项目两种配置文件同时存在,哪种文件配置起作用?
  5. [html] xml与html有什么区别?
  6. 前端学习(2716):重读vue电商网站36之slot插槽使用
  7. 代码补全_AI加持,Kite增加智能代码补全功能:减少一半操作,实时补全
  8. reset java_Java PushbackReader reset()用法及代码示例
  9. 生态系统长期观测数据产品体系
  10. linux 软件部署工具下载,linux配置 yum管理应用软件 、 快速部署Web/FTP
  11. Oracle的权限角色及用户
  12. 猿创征文|工具在手,天下我有(初入职场必备的黑科技工具)
  13. 嵌入式Linux开发环境搭建实验
  14. 云南钉钉早教、幼儿园、托儿所一体化智能管理系统解决方案
  15. 独家研究 I 某新一线城市中高端养老社区项目(CCRC)入住客户画像深度洞察研究报告
  16. 等值面抽取技术(Iso-surfaces Extraction Technique)
  17. Echarts直角坐标系x轴y轴属性设置大全
  18. NDIS拨号流程+dhcp
  19. 对象存储OSS基本概念讲解
  20. ue4 Niagara粒子打包安卓后不显示

热门文章

  1. Android报错(* Try: Run with --stacktrace option to get the stack trace. Run with --debug)
  2. 砂之船超级奥莱丨独创新型商业模式,带来全新娱乐、购物体验
  3. frida hook so层常用的方法
  4. java实现简单万年历
  5. nginx端口设置浅谈
  6. 期望、方差与协方差矩阵
  7. java如何实现服务降级_Hystrix服务降级
  8. 道德经与程序人生--引言
  9. GeoServer 学习(五)GeoServer安装与使用
  10. crypto DES 的加密与解密