WordPress不使用插件代码实现博客网站地图sitemap.xml的方法,需要添加伪静态规则。
- 在网站根目录新建一个Sitemap.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 | <?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$ /