WordPressデータのクエリブロック
ブロック
ガイド Gutenbergブロックの操作 で詳しく読むことができます。
以下は、ブロックデータを取得するクエリの例です。
Block型を使ってカスタム投稿のブロックを取得する
投稿内のすべてのブロックのデータを取得する:
{
post(by: { id: 19 }) {
blocks {
...BlockData
}
}
}
fragment BlockData on Block {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
}
}
}
}
}
}
}
}特定の種類のブロックのみを取得する:
{
post(by: { id: 19 }) {
blocks(
filterBy: {
include: [
"core/heading",
"core/paragraph"
]
}
) {
...BlockData
}
}
}
fragment BlockData on Block {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
}
}
}
}
}
}
}
}ブロックを除外する:
{
post(by: { id: 19 }) {
blocks(
filterBy: {
exclude: [
"core/heading",
"core/paragraph"
]
}
) {
...BlockData
}
}
}
fragment BlockData on Block {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
}
}
}
}
}
}
}
}JSONObject型を使ってカスタム投稿のブロックデータを取得する
投稿内のすべてのブロックのデータを取得する:
{
posts(by: { id: 19 }) {
blockDataItems
}
}特定の種類のブロックのみを取得する:
{
posts(by: { id: 19 }) {
blockDataItems(
filterBy: {
include: [
"core/heading",
"core/paragraph"
]
}
)
}
}ブロックを除外する:
{
posts(by: { id: 19 }) {
blockDataItems(
filterBy: {
exclude: [
"core/heading",
"core/paragraph"
]
}
)
}
}カスタム投稿のフラット化されたブロックデータを取得する
フィールド blockFlattenedDataItems は、カスタム投稿に含まれるブロックの階層を単一レベルにフラット化します。そのため、ブロック種別でフィルタリングすると、除外された親ブロックを持つ内部ブロックも含まれるようになります。
投稿内のすべてのブロックのデータを取得する:
{
posts(by: { id: 19 }) {
blockFlattenedDataItems
}
}特定の種類のブロックのみを取得する:
{
posts(by: { id: 19 }) {
blockFlattenedDataItems(
filterBy: {
include: [
"core/heading",
"core/paragraph",
"core/columns",
"core/column"
]
}
)
}
}