WordPress如何用代码实现sitemap.xml网站地图

  • 9
  • 55 views
  • A+
所属分类:wordpress主题

对于做网站SEO优化的我们来说做网站地图是必不可少的事情,通常的网站地图分为两种:一个是sitemap.html类型的网站地图,另外一种是sitemap.xml类型的网站地图。html的网站地图通常来说是给真实的用户使用,方便用户们熟悉网站架构和缩短他们找到目标栏目的时间成本。而xml的网站地图的版本是给搜索引擎(百度、360、谷歌)的蜘蛛爬取使用的,这样做是方便搜索引擎蜘蛛抓取我们的网站内容,促进网站内容的收录。

WordPress如何用代码实现sitemap.xml网站地图

叶忠文在之前wordpress主题的网站如何做sitemap.htm网站地图里有讲到过html的制作方法以及好处,不清楚的朋友们可以知道之前那篇文章进行查阅。今天所要讲到的是关于xml网站地图的制作,对于这类型的地图主要是为搜索引擎蜘蛛提供可以浏览整个网站的链接,便于用户查找网站的主要栏目和浏览。

今天无意在逛一些博主站点的时候,在诗梦博客里看到关于用代码制作一个xml网站地图的教程,叶忠文觉得挺不错的,所以想借此机会分享出来,以便那些想做此类型网站地图而又不会做的朋友们。好了!话不多说,我们进入以下简单的教程吧。

1、在网站根目录新建一个Sitemap.php文件

2、文件中填入以下代码:

   <?php
    require('./wp-blog-header.php');
    header("Content-type: text/xml");
    header('HTTP/1.1 200 OK');
    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 https://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">';
    ?>
    <!-- generated-on=<?php echo get_lastpostdate('blog'); ?>-->
    <url>
        <loc><?php echo get_home_url(); ?></loc>
        <lastmod><?php echo gmdate('Y-m-d\TH:i:s+00:00', strtotime(get_lastpostmodified('GMT'))); ?></lastmod>
        <changefreq>daily</changefreq>
        <priority>1.0</priority>
    </url>
    <?php
    // 文章
    $posts = get_posts('numberposts=-1&orderby=post_date&order=DESC');
    foreach($posts as $post) :
    ?>
        <url>
            <loc><?php echo get_permalink($post->ID); ?></loc>
            <lastmod><?php echo str_replace(" ", "T", get_post($post->ID)->post_modified); ?>+00:00</lastmod>
            <changefreq>monthly</changefreq>
            <priority>0.6</priority>
        </url>
    <?php
    endforeach;
    // 页面
    $pages = get_pages('numberposts=-1&orderby=post_date&order=DESC');
    foreach($pages as $page) :
    ?>
        <url>
            <loc><?php echo get_page_link($page->ID); ?></loc>
            <lastmod><?php echo str_replace(" ", "T", get_page($page->ID)->post_modified); ?>+00:00</lastmod>
            <changefreq>weekly</changefreq>
            <priority>0.6</priority>
        </url>
    <?php
    endforeach;
    // 分类
    $categorys = get_terms('category', 'orderby=name&hide_empty=0');
    foreach ($categorys as $category) :
    ?>
        <url>
            <loc><?php echo get_term_link($category, $category->slug); ?></loc>
            <changefreq>weekly</changefreq>
            <priority>0.8</priority>
        </url>
    <?php
    endforeach;
    // 标签
    $tags = get_terms('post_tag', 'orderby=name&hide_empty=0');
    foreach ($tags as $tag) :
    ?>
        <url>
            <loc><?php echo get_term_link($tag, $tag->slug); ?></loc>
            <changefreq>monthly</changefreq>
            <priority>0.4</priority>
        </url>
    <?php
    endforeach;
    ?>
    </urlset>

伪静态:

rewrite ^/Sitemap.xml$ /

希望可以帮到那些有需要帮助的伙伴们! :smile: :smile: :smile:

Joson

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:9   其中:访客  5   博主  4

    • 励志语录网 励志语录网 来自天朝的朋友 谷歌浏览器 Windows 10 浙江省杭州市 移动 0

      地图感觉没啥用啊

        • Joson Joson  博主 来自天朝的朋友 火狐浏览器 Windows 10 广东省深圳市宝安区 电信

          @励志语录网 只能说有一点点小作用

        • 姜辰 姜辰 来自天朝的朋友 火狐浏览器 Windows 10 浙江省杭州市 阿里云BGP数据中心 1

          = =、这个。。。我感觉就提交搜索引擎的时候可以用下。

            • Joson Joson  博主 来自天朝的朋友 火狐浏览器 Windows 10 广东省深圳市宝安区 电信

              @姜辰 嗯、不要抱太大的希望对这个,用处有一点点

            • 袋装水 袋装水 谷歌浏览器 Windows 7 亚太地区 2

              学习了,不错

              • PGUP笔记 PGUP笔记 来自天朝的朋友 谷歌浏览器 Mac OS X 10_14_6 河南省郑州市 联通 0

                mark一下!实际操作一下看一效果!

                  • Joson Joson  博主 来自天朝的朋友 火狐浏览器 Windows 10 广东省深圳市宝安区 电信

                    @PGUP笔记 没问题的

                  • MAY的SEO博客 MAY的SEO博客 来自天朝的朋友 火狐浏览器 Windows 10 上海市 联通 0

                    这是完全不借助插件的方法,挺实用的 :grin:

                      • Joson Joson  博主 来自天朝的朋友 火狐浏览器 Windows 10 广东省深圳市 电信

                        @MAY的SEO博客 插件能不用尽可能不用、会影响打开速度