Plugin Verilerini Sorgulama
Plugin Verilerini SorgulamaMeta Box

Meta Box

Meta Box eklentisindeki verilerle etkileşim kurmak için queries örnekleri.

Meta Box özel alanlarını alma

Meta Box özel alan verilerini sorgulamak için, türleri ne olursa olsun, meta alanlarını kullanabiliriz:

query GetPost($postId: ID!) {
  post(by: { id: $postId }) {
    id
    title
 
    text: metaValue(key: "text_field")
    textarea: metaValue(key: "textarea_field")
    select: metaValue(key: "select_field")
    multiSelect: metaValues(key: "multi_select_field")
  }
}

Meta değer bir ilişkiyse (örn: bir gönderi, bir kullanıcı, bir taksonomi vb.), bu değeri kullanarak Post, User, Taxonomy vb. türündeki ilgili varlığı sorgulayabiliriz:

query GetPostWithRelationships($postId: ID!) {
  post(by: { id: $postId }) {
    id
    title
    
    # Bir gönderiye ilişkiyi dışa aktar
    relationshipPostId: metaValue(key: "relationship_post_id")
      @export(as: "relationshipPostId")
 
    # Bir gönderi listesine ilişkiyi dışa aktar
    relationshipPostIds: metaValues(key: "relationship_post_ids")
      @export(as: "relationshipPostIds")
  }
}
 
query QueryPostRelationships @depends(on: "GetPostWithRelationships") {  
  # Bir gönderiye ilişkiyi sorgula
  relationshipPost: post(by: { id: $relationshipPostId }) {
    id
    title
  }
 
  # Bir gönderi listesine ilişkiyi sorgula
  relationshipPosts: posts(filter: { ids: $relationshipPostIds }) {
    id
    title
  }
}

Meta Box özel alanlarını güncelleme

Alan adlarını ve değerlerini geçirerek, türleri ne olursa olsun, Meta Box özel alan verilerini güncellemek için meta mutations kullanabiliriz:

mutation UpdatePost($postId: ID!) {
  updatePost(
    input: {
      id: $postId
      meta: {
        text_field: ["New text value"],
        textarea_field: ["New textarea value"],
        select_field: ["New select value"],
        multi_select_field: ["Choice 1", "Choice 2"],
      }
    }
  ) {
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
    }
    post {
      id
      text: metaValue(key: "text_field")
      textarea: metaValue(key: "textarea_field")
      select: metaValue(key: "select_field")
      multiSelect: metaValues(key: "multi_select_field")
    }
  }
}