前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >wordpress自动生成站点地图sitemap.xml教程

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

作者头像
卡伊德
发布2023-07-21 14:54:06
8801
发布2023-07-21 14:54:06
举报
文章被收录于专栏:caidblogcaidblog

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(友链)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-07-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 安装依赖
  • 2. 在配置文件nuxt.config.js添加生成代码
    • 2.1 在最外层(export default {上面)添加代码:
      • 2.2 在module里边添加依赖(原有的别删除,注意除了最后一项外前面每一行依赖后面有逗号):
      • 4. 测试
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档