wordpress自动生成站点地图sitemap.xml教程

1. 安装依赖

代码语言:javascript
复制
yarn add @nuxtjs/sitemap axios

或者

代码语言:javascript
复制
npm i @nuxtjs/sitemap
npm install axios

2. 在配置文件nuxt.config.js添加生成代码

2.1 在最外层(export default {上面)添加代码:

代码语言:javascript
复制
const axios = require('axios');

2.2 在module里边添加依赖(原有的别删除,注意除了最后一项外前面每一行依赖后面有逗号):

代码语言:javascript
复制
modules: [
'@nuxtjs/axios',
'@nuxtjs/sitemap'
],

3. 添加生成代码:

代码语言:javascript
复制
sitemap: {
    path: '/sitemap.xml',
    hostname: 'https://www.caidhome.cn/', // 网址
    cacheTime: 1000 * 60 * 60 * 24,
    gzip: true,
    generate: false,
    exclude: [
      '/404'
    ],
    routes (callback) {
      axios.all([
        axios.get('https://www.caidhome.cn/wp-json/xm-blog/v1/menu'),
        axios.get('https://www.caidhome.cn/wp-json/wp/v2/posts', {
          params: {
            page: 1,
            per_page: 100,
            _embed: true
          },
          data: { progress: false }
        }),
        axios.get('https://www.caidhome.cn/wp-json/xm-blog/v1/info')
  ]).then(axios.spread(function (menu, posts, info) {
    let now = new Date();
    now.setHours(now.getHours(), now.getMinutes() - now.getTimezoneOffset());
    let indexRoutes = [
      {
        url: '/',
        changefreq: 'daily',
        priority: 1,
        lastmodISO: now.toISOString()
      }
    ]
    let menuRoutes = menu.data.mainMenu.map((data) => {
      let url = ''
      if (data.object === 'category') {
        url = '/category/1?type=' + data.object_id + '&title=' + data.title
      }
      if (data.object === 'page') {
        url = '/page/' + data.object_id
      }
      if (data.object === 'post_tag') {
        url = '/tags/1?type=' + data.term_id + '&title=' + data.name
      }
      if (data.object === 'custom') {
        url = data.url
      }
      return {
        url: url,
        changefreq: 'monthly',
        priority: 0.8,
        lastmodISO: data.post_modified
      }
    });
    let postsRoutes = posts.data.map((data) => {
      return {
        url: '/' + data.id,
        changefreq: 'daily',
        priority: 0.9,
        lastmodISO: data.modified
      }
    });
    let tagsRoutes = info.data.tagCloud.map((data) => {
      return {
        url: `/tags/1?type=${data.term_id}&title=${data.name}`,
        changefreq: 'weekly',
        priority: 0.7,
        lastmodISO: now
      }
    })
    callback(null, indexRoutes.concat(menuRoutes, postsRoutes, tagsRoutes));
  }), function (err) {
    throw (err);
  });
}

}

4. 测试

访问:’域名+/sitemap.xml’,发现已经有XML格式的sitemap文件了,这样就可以在百度推送里添加链接,进行抓取推送了。

这是我的sitemap.xml结果:

参考链接:
会coding的HAM | BG7ZAG(友链)