メタフィールドの登録

post_meta テーブル内のフィールドを操作するには WordPress 関数 register_post_meta を使用します。この関数を使用して単一文字列の新しいフィールド sidebar_plugin_meta_block_field を登録します。このフィールドは REST API から利用できる必要があります。ブロックエディターはデータアクセスに REST API を使用するためです。

PHP ファイルの init コールバック関数内に以下のコードを追加してください。

register_post_meta( 'post', 'sidebar_plugin_meta_block_field', array(
    'show_in_rest' => true,
    'single' => true,
    'type' => 'string',
) );

フィールドがロードされたことを確認するには、「ストア」と呼ばれるブロックエディターの内部データ構造を照会します。ブラウザーのコンソールを開き、次のコードを実行してください。

wp.data.select( 'core/editor' ).getCurrentPost().meta;

プラグインに register_post_meta 関数を追加する前は、このコードは void の配列を返します。これは WordPress にメタフィールドがロードされていなかったためです。フィールドを登録すると、登録済みのメタフィールドを含むオブジェクトを返します。

コードが undefined を返す場合、投稿の登録時または add_post_type_support 関数で投稿タイプが custom-fields をサポートすることを確認してください。

原文

最終更新日: