parse_blocks

説明

array[] parse_blocks( string $content )
投稿コンテンツをパースする。

パラメータ

  • $content
    投稿コンテンツを指定

返り値

投稿コンテンツをパースしたブロック情報(連想配列)の配列を返す。1つのブロック情報は次の内容となる。

キーデータ型内容
'blockName'stringブロック名
'attrs'arrayブロック属性
'innerBlocks'array[]インナーブロック情報の配列
'innerHTML'stringブロック内のHTMLテキスト
'innerContent'arrayブロック内コンテンツの配列

参考まで「Hello world!」の投稿コンテンツをパースした結果。

array(1) {
  [0]=>
  array(5) {
    ["blockName"]=>
    string(14) "core/paragraph"
    ["attrs"]=>
    array(1) {
      ["className"]=>
      string(0) ""
    }
    ["innerBlocks"]=>
    array(0) {
    }
    ["innerHTML"]=>
    string(148) "
<p>WordPress へようこそ。こちらは最初の投稿です。編集または削除し、コンテンツ作成を始めてください。</p>
"
    ["innerContent"]=>
    array(1) {
      [0]=>
      string(148) "
<p>WordPress へようこそ。こちらは最初の投稿です。編集または削除し、コンテンツ作成を始めてください。</p>
"
    }
  }
}

注意

標準のパーサークラスはWP_Block_Parserクラスで、'block_parser_class'フィルターにより変更可能になっている(パーサークラスはparseメソッドが必須)。


使用例

  • 投稿コンテンツをパースする
    $blocks = parse_blocks( $post->post_content );

フィルター

[5.0.0]パーサークラスを確定するため'block_parser_class'フィルターを呼び出す。パラメータ$parser_classには'WP_Block_Parser'が格納されている。
$parser_class = apply_filters( 'block_parser_class', $parser_class );

アクション

直接実行するアクションはありません。

ソースファイル

/wp-includes/blocks.php

最終更新 : 2024年07月24日 10:57



お勧め

初期状態で「抜粋」ウィジェットを表示する(2014年1月7日 更新)

投稿編集ページのウィジェットは標準で表示されるものとされないものがある。フォーラムに『投稿の編集画面にデフォルトで抜粋を表示させたい』という投稿があったので、ちょっと調べてみた。

query_posts(WP_Queryクラス)で投稿タグを絞り込む(2011年9月14日 更新)

投稿タグの絞り込みは、カテゴリーに似ているけど微妙に違っている。今日は、昨日投稿した「query_posts(WP_Queryクラス)でカテゴリーを絞り込む」の続きとして、投稿タグの絞り込みついてまとめてみる。

カスタムフィールド関連関数のおさらい(2012年6月22日 更新)

カスタムフィールドは、投稿記事の拡張情報としてよく利用されている。投稿ページで登録した情報をアーカイブや投稿ページで表示しているが、投稿ページを表示する際にカスタムフィールドの値を更新して、サイドバーのようなページ内要素に利用したりしている。

Align widgets horizontally:プラグイン作ってみました(2024年5月6日 更新)

ほぼ毎日何度も見ているダッシュボードページ。自分好みに各ウィジェットの場所を配置しているものの、何かすっきりしない。そこでふと思ったのが、ウィジェットを横並びにできれば隣り合うウィジェットの並びがガタガタしなくなるのでは!?

Contact Form 7に確認フェーズを(2012年12月16日 更新)

Contact Form 7はWordPressによるサイト製作でお世話になることが多いプラグインの1つ。ただ、クライアント様によっては、入力、確認、送信の3フェーズにしたいという要望があり、そんな時は別の方法を採用していたのですが、JavaScript(jQuery)を使ってページ遷移しなくてもいいなら確認フェーズは用意できるかなと思い、作り込んでみた。