WordPressの旧再利用ブロック、現在の「パターン」をショートコードで呼び出せるようにするカスタマイズ

WordPressの旧再利用ブロック、現在の「パターン」をショートコードで呼び出せるようにするカスタマイズについてのご紹介です。

TOC

PHPを追記する

以下のコードを子テーマのfunctions.phpかcodesnippetsか何かに追記してください。

function custom_reusable_block_shortcode( $atts ) {
    // ショートコードの引数を取得
    $atts = shortcode_atts(
        [
            'id' => '', // 再利用ブロックのID
        ],
        $atts,
        'reuse-block'
    );

    // IDが指定されていない場合は空文字を返す
    if ( empty( $atts['id'] ) ) {
        return '';
    }

    // 再利用ブロックの内容を取得
    $reuse_block = get_post( $atts['id'] );

    // 再利用ブロックが存在しない場合は空文字を返す
    if ( ! $reuse_block || 'wp_block' !== $reuse_block->post_type ) {
        return '';
    }

    // 再利用ブロックの内容をフィルタリングして返す
    $reuse_block_content = apply_filters( 'the_content', $reuse_block->post_content );
    return $reuse_block_content;
}
add_shortcode( 'reuse-block', 'custom_reusable_block_shortcode' );

使用方法

1.再利用ブロックのIDを取得する

管理画面の「再利用可能ブロック」一覧に移動し、編集リンクのURLからブロックのIDを確認します。URLは次のようになっています

https://example.com/wp-admin/post.php?post=123&action=edit

この場合、123 が再利用ブロックのIDです。

2.ショートコードを投稿や固定ページに挿入する 以下の形式でショートコードを使用します。ここで、id=”123″ の部分に取得したIDを記述します。

[[reuse-block id="123"]]

動作の仕組み

  1. ショートコード [reuse-block id=”123″] が呼び出されると、get_post() で該当する再利用ブロックの投稿データを取得します。
  2. 投稿データの post_content を apply_filters(‘the_content’, …) で処理することで、再利用ブロックの内容を適切にレンダリングします。
  3. ショートコードが設置された場所に、再利用ブロックの内容が埋め込まれます。
よかったらシェアしてね!

PROFILE

hirochanのアバター hirochan 主婦

小2を育児中の主婦。ブログカスタマイズが趣味。写真は娘ではなく本人です。

TOC