WordPress verilerini sorgula
WordPress verilerini sorgulaÖzel İçerikler

Özel İçerikler

Daha fazla bilgi için Özel İçeriklerle Çalışma kılavuzunu okuyun.

Bunlar özel içerik verilerini getirmek için queries örnekleridir.

Şemaya eşlenmiş CPT'ler

"post" ve "page" CPT'leri ile özel içerikleri getirin:

query {
  customPosts(filter: { customPostTypes: ["post", "page"] }) {
    ...CustomPostProps
    ...PostProps
    ...PageProps
  }
}
 
fragment CustomPostProps on CustomPost {
  __typename
  title
  excerpt
  url
  dateStr(format: "d/m/Y")
}
 
fragment PostProps on Post {
  tags {
    id
    name
  }
}
 
fragment PageProps on Page {
  author {
    id
    name
  }
}

Şemaya eşlenmemiş CPT'ler

Çeşitli CPT'ler için özel içerikleri getirin (Ayarlar aracılığıyla sorgulanabilir olmaları için etkinleştirilmiş olmaları gerekir):

query {
  customPosts(
    filter:{
      customPostTypes: [
        "page",
        "nav_menu_item",
        "wp_block",
        "wp_global_styles"
      ]
    }
  ) {
    ... on CustomPost {
      id
      title
      customPostType
      status
    }
    __typename
  }
}

CPT'leri özel bir taksonomiye göre filtreleme

Kategoriye göre filtreleyerek özel içerikleri getirin:

query {
  customPosts(
    filter: {
      categories: {
        includeBy: {
          ids: [26, 28]
        }
        taxonomy: "product-cat"
      }
    }
  ) {
    ... on CustomPost {
      id
      title
    }
    ... on GenericCustomPost {
      categories(taxonomy: "product-cat") {
        id
      }
    }
  }
}

Özel içerik oluşturma

Bir Post'tan fazladan alan gerektirmeyen CPT'ler oluşturmak için createCustomPost mutation'ını kullanabilirsiniz.

Bu query, "my-portfolio" CPT'si için bir kayıt oluşturur:

mutation {
  createCustomPost(
    input: {
      customPostType: "my-portfolio"
      title: "My photograph"
      contentAs: { html: "This is my photo, check it out." }
    }
  ) {
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
      ...on GenericErrorPayload {
        code
      }
    }
    customPost {
      __typename
      ...on CustomPost {
        id
        title
        content
      }
    }
  }
}

Özel içerik güncelleme

Bu query, "my-portfolio" CPT'si için başlık ve içeriği günceller:

mutation {
  updateCustomPost(input: {
    id: 1
    customPostType: "my-portfolio"
    title: "Updated title"
    contentAs: { html: "Updated content" }
  }) {
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
    }
    customPost {
      __typename
      ...on CustomPost {
        id
        title
        content
      }
    }
  }
}

Ya da iç içe mutations kullanarak:

mutation {
  customPost(by: { id: 1 }, customPostTypes: "my-portfolio") {
    originalTitle: title
    update(input: {
      title: "This is my new title",
      contentAs: { html: "This rocks!" }
    }) {
      status
      errors {
        __typename
        ...on ErrorPayload {
          message
        }
      }
      customPost {
        __typename
        ...on CustomPost {
          id
          newTitle: title
          content
        }
      }
    }
  }
}