쿼리 라이브러리
쿼리 라이브러리Bricks 게시물 복제하기

Bricks 게시물 복제하기

이 쿼리는 Bricks 커스텀 게시물(제목, 콘텐츠, 발췌문, 작성자, 대표 이미지, 메타데이터 포함)을 복제하고, 복제된 커스텀 게시물의 Bricks 요소 ID를 재생성합니다.

이 쿼리를 사용하려면 Bricks 확장 기능이 활성화되어 있어야 합니다.

이 쿼리에는 다음 변수가 필요합니다:

  • customPostId: 복제할 Bricks 커스텀 게시물의 ID.
query InitializeDynamicVariables
  @configureWarningsOnExportingDuplicateVariable(enabled: false)
{
  authorID: _echo(value: null)
    @export(as: "authorID")
    @remove
 
  featuredImageID: _echo(value: null)
    @export(as: "featuredImageID")
    @remove
 
  meta: _echo(value: {})
    @export(as: "meta")
    @remove
 
  bricksIsEnabledForCustomPostType: _echo(value: false)
    @export(as: "bricksIsEnabledForCustomPostType")
    @remove
}
 
query GetBricksCustomPostAndExportData($customPostId: ID!)
  @depends(on: "InitializeDynamicVariables")
{
  customPost(by: { id: $customPostId }, status: any) {
    bricksIsEnabledForCustomPostType
      @export(as: "bricksIsEnabledForCustomPostType")
 
    # Fields not to be duplicated
    id
    slug
    date
    status
 
    # Fields to be duplicated
    author {
      id @export(as: "authorID")
    }
    customPostType @export(as: "customPostType")
    rawContent @export(as: "rawContent")
    rawExcerpt @export(as: "excerpt")
    featuredImage {
      id @export(as: "featuredImageID")
    }
    rawTitle @export(as: "title")
 
    metaKeys(filter: { exclude: ["_thumbnail_id", "_edit_last"] })
    meta(keys: $__metaKeys) 
      @export(as: "meta")
  }
}
 
mutation DuplicateBricksCustomPost
  @depends(on: "GetBricksCustomPostAndExportData")
  @include(if: $bricksIsEnabledForCustomPostType)
{
  createCustomPost(input: {
    status: draft,
    customPostType: $customPostType,
    authorBy: {
      id: $authorID
    },
    contentAs: {
      html: $rawContent
    },
    excerpt: $excerpt
    featuredImageBy: {
      id: $featuredImageID
    },
    title: $title,
    meta: $meta
  }) {
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
    }
    customPost {
      # Fields not to be duplicated
      id @export(as: "newCustomPostId")
      slug
      date
      status
 
      # Fields to be duplicated
      customPostType
      author {
        id
      }
      rawContent
      excerpt
      featuredImage {
        id
      }
      title
      
      metaKeys(filter: { exclude: ["_thumbnail_id", "_edit_last"] })
      meta(keys: $__metaKeys)
    }
  }
}
 
mutation RegenerateDuplicatedCustomPostBricksData
  @depends(on: "DuplicateBricksCustomPost")
  @include(if: $bricksIsEnabledForCustomPostType)
{
  bricksRegenerateCustomPostElementIDSet(input: {
    customPostID: $newCustomPostId
  }) {
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
    }
  }
}