wordpress建立php站点地图,WordPress修改源文件生成完整站点地图(sitemap.xml)的php代码实例...
一直以来,张戈博客都是用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代码实例...相关推荐
- 腾讯地图api修改信息窗口样式_DOTA2 地图编辑器指南(二):总览
做什么地图 作为一个打算把流程讲得详细一点的教程,是不太好做什么庞大的项目的.我们的目的还是学会制作工具和熟悉制作流程,只要学会了工具,就有能力实现自己心目中的项目了.到时候更加要求的其实是创意. 所 ...
- 如何使用WordPress建立一个博客、网站和论坛
这篇文章将介绍如何使用WordPress建立一个博客.网站和论坛.WordPress是基于PHP的博客架设工具.它提供了一套开源的PHP代码以方便用户在支持PHP的主机上快速的建立博客.WordPre ...
- 我的世界服务器地图名称修改,《我的世界》修改地图名称颜色教程
中很多玩家都看了别人的地图名称都是有颜色的,但是自己创建的地图都是灰色的名字一点都没有霸气,不吸引眼球,下面小编就为大家带来我的世界修改地图名称颜色教程,希望对各位玩家有所帮助. 这是标准的样子 然后 ...
- 教你创建Google网站地图Sitemap.xml(转)
http://teachmyself.blog.163.com/blog/static/18881422920119895248288/ Sitemap.xml是 google搞出来的,也就是网站地图 ...
- java sitemap_JAVA 针对 sitemap.xml 文件读写修改操作
UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层 ...
- wordpress 服务器_如何将WordPress从本地服务器移动到实时站点(2种方法)
wordpress 服务器 One way to speed up your website development is to build your website locally on your ...
- 使用wordpress建立企业或博客网站新手教程
前言 wordpress个开源的,知名的,拥有无数的插件和主题的知名blog/CMS php程序.全球数百万的网站通过wordpress建立或修改. 现在非常多的企业网站使用wordpress来建 ...
- Vite(三)部署静态站点(wordpress与hugo与Vercel、CI/CD、Travis CI、GitLab CI)、环境变量与模式、服务端渲染(SSR)
Vite(三)部署静态站点(wordpress与hugo与Vercel.CI/CD.Travis CI.GitLab CI).环境变量与模式.服务端渲染(SSR) 文章目录 Vite(三)部署静态站点 ...
- 如何使用WordPress建立亚马逊会员商店
Do you want to create an Amazon affiliate store using WordPress? 您是否要使用WordPress创建亚马逊会员商店? An Amazon ...
最新文章
- 【jstl】jstl的基本操作
- 一次SQL查询优化原理分析(900W+数据,从17s到300ms)
- Linux 小知识翻译 - 「cron」
- 【SpringBoot零基础案例05】【IEDA 2021.1】若SpringBoot项目两种配置文件同时存在,哪种文件配置起作用?
- [html] xml与html有什么区别?
- 前端学习(2716):重读vue电商网站36之slot插槽使用
- 代码补全_AI加持,Kite增加智能代码补全功能:减少一半操作,实时补全
- reset java_Java PushbackReader reset()用法及代码示例
- 生态系统长期观测数据产品体系
- linux 软件部署工具下载,linux配置 yum管理应用软件 、 快速部署Web/FTP
- Oracle的权限角色及用户
- 猿创征文|工具在手,天下我有(初入职场必备的黑科技工具)
- 嵌入式Linux开发环境搭建实验
- 云南钉钉早教、幼儿园、托儿所一体化智能管理系统解决方案
- 独家研究 I 某新一线城市中高端养老社区项目(CCRC)入住客户画像深度洞察研究报告
- 等值面抽取技术(Iso-surfaces Extraction Technique)
- Echarts直角坐标系x轴y轴属性设置大全
- NDIS拨号流程+dhcp
- 对象存储OSS基本概念讲解
- ue4 Niagara粒子打包安卓后不显示