码云笔记前端博客
Home > WP教程 > WordPress纯代码实现XML格式的sitemap地图

WordPress纯代码实现XML格式的sitemap地图

2019-07-04 分类:WP教程 作者:码云 阅读(1045)

本文共计936个字,预计阅读时长需要3分钟。

站点地图sitemap版本分为xml版本和html版本,它们有什么区别呢?sitemap的xml版本主要是提供给搜索引擎看得。而html版本作用是提高用户体验,让用户一眼就能看清楚网站内容和分类。码云笔记前端博客坚持一个原则就是能用代码解决的问题坚决不用插件,所以特此整理本文WordPress纯代码实现XML格式的sitemap地图教程,让大家可以在不使用插件的情况下制作自己的站点地图。
本文实现效果见码云笔记博客XML网站地图:https://www.mybj123.com/sitemap.xml
WordPress纯代码实现XML格式的sitemap地图

实现步骤

PHP获取链接并显示XML

需要注意的是,在XML文件中需要指明每个链接的权重,一般首页最高权重为1,分类次之0.8,标签0.6,文章0.4。这个没有定数,大家需要多少权重自己调节下就好,下面看生成代码。

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
<?php
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 '<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">'
;
?>
<!-- generated-on=<?php echo get_lastpostdate('blog'); ?>-->
<url>
<loc>https://www.mybj123.com/</loc>
<lastmod><?php echo get_lastpostdate('blog'); ?></lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<?php
header("Content-type: text/xml");
$myposts = get_posts( "numberposts=" . $posts_to_show );
foreach( $myposts as $post ) { ?>
<url>
<loc><?php the_permalink(); ?></loc>
<lastmod><?php the_time('c') ?></lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<?php } // end foreach ?>
<?php
/* 博客分类 */
$terms = get_terms('category', 'orderby=name&hide_empty=0' );
$count = count($terms);
if($count > 0){
foreach ($terms as $term) { ?>
    <url>
      <loc><?php echo get_term_link($term, $term->slug); ?></loc>
      <changefreq>weekly</changefreq>
      <priority>0.8</priority>
  </url>
<?php }} /* 分类循环结束 */?>
</urlset>

每一段代码都有注释,生成的地址链接和html地图中一样。将上面的代码保存为php文件,并放在你的网站根目录,就是WordPress配置文件wp_config.php文件所在目录中,然后你就可以通过你的域名/网站地图文件名.php的方式在浏览器中访问,仅此并不能让搜索引擎知道你这是xml文件,因为它们并不认识php文件,因此我们还需要增加一条静态规则,将这个文件的路径修改下,并让他呈现.xml后缀。

添加伪静态规则:
静态规则与你的web容器有关,这里我举例说明,具体看大家各自配置。
那么,伪静态规则在哪里写呢?
找到.htaccess并重写.htaccess,在第一行加上一句代码(根据自己情况填写)如下:
Apache:

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

Nginx:

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

这样代码的意思是将php文件重写为xml文件,ok,xml制作完毕。
至此,xml版本的html版本的站点地图制作成功。制作好以后,我们还可以使用百度种子页面提高收录。

「除特别注明外,本站所有文章均为码云笔记原创,转载请保留出处!」

赞(7) 打赏

觉得文章有用就打赏一下文章作者

支付宝
微信
7

觉得文章有用就打赏一下文章作者

支付宝
微信

上一篇:

下一篇:

你可能感兴趣

共有 0 条评论 - WordPress纯代码实现XML格式的sitemap地图

博客简介

码云笔记网 mybj123.com,一个专注Web前端开发技术的博客,主要记录和总结博主在前端开发工作中常用的实战技能及前端资源分享,分享各种科普知识和实用优秀的代码,以及分享些热门的互联网资讯和福利!码云笔记网有你更精彩!
更多博客详情请看关于博客

精彩评论