Truy vấn dữ liệu Plugin
Truy vấn dữ liệu PluginSlim SEO

Slim SEO

Các ví dụ về queries để tương tác với dữ liệu từ plugin Slim SEO.

Lấy siêu dữ liệu SEO

Chúng ta có thể sử dụng các trường meta để truy vấn siêu dữ liệu SEO:

query GetPost($postId: ID!) {
  post(by: { id: $postId }) {
    id
    title
 
    slimSeoMeta: metaValue(key: "slim_seo")
    metaTitle: _objectProperty(object: $__slimSeoMeta, by: { key: "title" }, failIfNonExistingKeyOrPath: false)
    metaDesc: _objectProperty(object: $__slimSeoMeta, by: { key: "description" }, failIfNonExistingKeyOrPath: false)
    fbImage: _objectProperty(object: $__slimSeoMeta, by: { key: "facebook_image" }, failIfNonExistingKeyOrPath: false)
    twitterImage: _objectProperty(object: $__slimSeoMeta, by: { key: "twitter_image" }, failIfNonExistingKeyOrPath: false)
    canonical: _objectProperty(object: $__slimSeoMeta, by: { key: "canonical" }, failIfNonExistingKeyOrPath: false)
  }
}

Cập nhật siêu dữ liệu SEO

Chúng ta có thể sử dụng các mutation meta để cập nhật siêu dữ liệu SEO:

mutation UpdatePost($postId: ID!) {
  updateCustomPostMetas(inputs: [
    {
      id: $postId,
      key: "slim_seo",
      value: {
        title: "New title",
        description: "New description",
        facebook_image: "https://example.com/social-image.jpg",
        twitter_image: "https://example.com/social-image.jpg",
        canonical: "https://example.com/canonical-url"
      }
    }
  ]) {
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
    }
    customPost {
      __typename
      id
      slimSeoMeta: metaValue(key: "slim_seo")
      metaTitle: _objectProperty(object: $__slimSeoMeta, by: { key: "title" }, failIfNonExistingKeyOrPath: false)
      metaDesc: _objectProperty(object: $__slimSeoMeta, by: { key: "description" }, failIfNonExistingKeyOrPath: false)
      fbImage: _objectProperty(object: $__slimSeoMeta, by: { key: "facebook_image" }, failIfNonExistingKeyOrPath: false)
      twitterImage: _objectProperty(object: $__slimSeoMeta, by: { key: "twitter_image" }, failIfNonExistingKeyOrPath: false)
      canonical: _objectProperty(object: $__slimSeoMeta, by: { key: "canonical" }, failIfNonExistingKeyOrPath: false)
    }
  }
}