页面元数据

管理面板中的每个页面都会自动接收动态生成的元数据,这些数据来源于实时文档内容、用户当前语言环境等信息。这包括页面标题、描述、og:image 等,且无需额外配置。

元数据可在根级别完全配置,并向下级联应用到各个集合(collection)、文档和自定义视图。这使您能够精确控制任何页面的元数据,同时提供合理的默认值。

所有元数据都会被注入到 Next.js 的 generateMetadata 函数中,用于生成管理面板页面的 <head> 部分。Payload 暴露了 Next.js 中所有可用的元数据选项。

在管理面板中,元数据可以在以下层级进行自定义:

所有这些类型的元数据都采用相似的结构,仅在根级别存在一些关键差异。要自定义元数据,请参考可用作用域列表。确定与您要实现目标对应的作用域,然后在 Payload 配置中相应地编写元数据。

根级元数据

根级元数据(Root Metadata)是应用于 Admin Panel 中所有页面的元数据。在这里你可以控制每个页面标题的后缀、浏览器标签页显示的 favicon,以及在社交媒体上分享 Admin Panel 时使用的 Open Graph 数据。

要自定义根级元数据,请在 Payload Config 中使用 admin.meta 键:

{
  // ...
  admin: {
    // highlight-start
    meta: {
    // highlight-end
      title: '我的管理面板',
      description: '世界上最好的管理面板',
      icons: [
        {
          rel: 'icon',
          type: 'image/png',
          url: '/favicon.png',
        },
      ],
    },
  },
}

根级元数据支持以下配置选项:

KeyTypeDescription
defaultOGImageTypedynamic (默认), static, 或 off使用的默认 OG 图片类型。设置为 dynamic 时,Payload 会使用 Next.js 图片生成功能创建包含页面标题的图片。设置为 static 时,Payload 会使用 defaultOGImage URL。设置为 off 时,Payload 不会生成 OG 图片。
titleSuffixstring附加在每个页面标题末尾的后缀。默认为 "- Payload"。
[keyof Metadata]unknownNext.js 在 generateMetadata 函数中支持的其他任何属性。更多详情

提醒: 这些是 Admin Panel 的_根级_选项。你还可以通过各自的配置在 CollectionGlobal 和文档级别自定义元数据。

图标配置

Icons Config 对应用于指定 Admin Panel 图标的 <link> 标签。icons 键是一个对象数组,每个对象代表一个单独的图标。图标通过 rel 属性进行区分,该属性指定了文档与图标之间的关系。

最常见的图标类型是 favicon,它显示在浏览器标签页上,由 rel 属性值为 icon 指定。其他常见图标类型包括 apple-touch-icon(当 Admin Panel 保存到 Apple 设备主屏幕时使用)和 mask-icon(Safari 浏览器用于遮罩 Admin Panel 图标)。

要自定义图标,请在 Payload Config 中使用 admin.meta.icons 属性:

{
  // ...
  admin: {
    meta: {
      // highlight-start
      icons: [
      // highlight-end
        {
          rel: 'icon',
          type: 'image/png',
          url: '/favicon.png',
        },
        {
          rel: 'apple-touch-icon',
          type: 'image/png',
          url: '/apple-touch-icon.png',
        },
      ],
    },
  },
}

有关所有可用图标选项的完整列表,请参阅 Next.js 文档

Open Graph

Open Graph 元数据是一组用于控制 URL 在社交媒体平台上分享时如何显示的标签。Payload 会自动生成 Open Graph 元数据,但可以在根级别进行自定义。

要自定义 Open Graph 元数据,请在 Payload Config 中使用 admin.meta.openGraph 属性:

{
  // ...
  admin: {
    meta: {
      // highlight-start
      openGraph: {
      // highlight-end
        description: '世界上最好的管理面板',
        images: [
          {
            url: 'https://example.com/image.jpg',
            width: 800,
            height: 600,
          },
        ],
        siteName: 'Payload',
        title: '我的管理面板',
      },
    },
  },
}

有关所有可用的 Open Graph 选项的完整列表,请参阅 Next.js 文档

Robots

设置 robots 属性可以控制管理面板 <head> 中渲染的 robots 元标签。这可用于控制搜索引擎如何索引页面并在搜索结果中显示它们。

默认情况下,管理面板设置为阻止搜索引擎索引其中的页面。

要自定义 Robots 配置,请在 Payload Config 中使用 admin.meta.robots 属性:

{
  // ...
  admin: {
    meta: {
      // highlight-start
      robots: 'noindex, nofollow',
      // highlight-end
    },
  },
}

有关所有可用的 Robots 选项的完整列表,请参阅 Next.js 文档

防止爬取

虽然通过 admin.meta.robots 设置 meta 标签可以阻止搜索引擎 索引 网页,但这并不能阻止它们 爬取 这些页面。

要完全阻止页面被爬取,请在根目录下添加 robots.txt 文件:

User-agent: *
Disallow: /admin/

注意: 如果你通过 config.routes 自定义了 Admin Panel 的路径, 请确保更新 Disallow 指令以匹配你的自定义路径。

集合元数据

Collection Metadata 是应用于 Admin Panel 中任何给定 Collection 内所有页面的元数据。这些元数据用于自定义特定 Collection 内所有视图的标题和描述,除非被视图本身覆盖。

要自定义 Collection Metadata,请在 Collection Config 中使用 admin.meta 键:

import type { CollectionConfig } from 'payload'

export const MyCollection: CollectionConfig = {
  // ...
  admin: {
    // highlight-start
    meta: {
      // highlight-end
      title: 'My Collection',
      description: 'The best collection in the world',
    },
  },
}

Collection Meta 配置与 Root Metadata 配置具有相同的选项。

全局元数据

Global Metadata 是应用于 Admin Panel 中任何给定 Global 内所有页面的元数据。这些元数据用于自定义特定 Global 内所有视图的标题和描述,除非被视图本身覆盖。

要自定义 Global Metadata,请在 Global Config 中使用 admin.meta 键:

import { GlobalConfig } from 'payload'

export const MyGlobal: GlobalConfig = {
  // ...
  admin: {
    // highlight-start
    meta: {
      // highlight-end
      title: 'My Global',
      description: 'The best admin panel in the world',
    },
  },
}

Global Meta 配置与 Root Metadata 配置具有相同的选项。

视图元数据

视图元数据(View Metadata)是应用于 Admin Panel 中特定视图的元数据。这些元数据用于自定义特定视图的标题和描述,会覆盖在根层级集合层级全局层级设置的任何元数据。

要自定义视图元数据,可以在视图配置中使用 meta 键:

{
  // ...
  admin: {
    views: {
      dashboard: {
        // highlight-start
        meta: {
        // highlight-end
          title: '我的仪表板',
          description: '世界上最好的仪表板',
        }
      },
    },
  },
}