WordPressでブロックエディタの再利用ブロックを、Single.phpや自作したテンプレートファイルに表示させる方法をご紹介します。
Gutenbergの再利用ブロックは非常に便利で、ボタン1回で登録したブロックを表示することができます。ブログ冒頭や、ブログ末尾に毎回同じ文言を載せたい場合など、再利用ブロックは大変おすすめです。
それでも毎回表示させるなら、テンプレートファイルに書き込んで記事にすら書かずとも表示させることもできます。
再利用ブロックをテンプレートファイルに書き込む方法
方法をご紹介します。
まず、私の場合Twitter登録してねーという表示を毎回記事の最後に表示したい(していた)と思います、再利用ブロックを使用していました。
ボタン一発で下記のような表示が可能です。
このアスタリスクと***から吹き出し、そして***までが再利用ブロックのセットです。この表示をクリック1つで表示できるのは嬉しいですが、毎回表示させるなら、Wordpressのテンプレートファイルに書き込んでしまって表示させたほうが楽ですよね。忘れないし。
ということで、方法です。前置き長くてすみません(笑)
ステップ1.再利用ブロックの名前を設定する
再利用ブロックには名前を付けることができます。というか、名前をつけますよね。
ブロックを選択して「再利用ブロックに追加」をクリックすると、すぐに名前を付けることになります。あとでいつでも名前を変更することは可能ですので、好きな名前を付けましょう。

例で表示したTwitterの場合はこんな感じです。
再利用ブロックの名前に「Twitter follow」という名前にしています。

この再利用ブロックの名前をメモします。
ステップ2.phpコードを書き込む
投稿画面にいつも表示させたい場合はSingle.php、固定ページに表示したい場合はpage.phpに以下のコードを記入します。
<?php $reuse = get_page_by_title('Twitter follow', OBJECT, 'wp_block'); ?> <?php echo apply_filters('the_content', '<!-- wp:block {"ref":'.$reuse->ID.'} /-->'); ?>
1行目のget_page_by_titleの最初の引数の所に再利用ブロックの名前を入れてあげます。変数の$reuserは好きな名前に変更可能ですが、残りの部分はそのまま利用します。
このコードを私のsingle.phpのテンプレートファイルに以下のように記入しました。一部抜粋です。
使っているテーマによってテンプレートファイルの書き方が違いますので、参考までとしてください。
<div class="entry-content"> <?php if( trawell_get('headline') && has_excerpt() ): ?> <div class="entry-headline h5"> <?php the_excerpt(); ?> </div> <?php endif; ?> <?php get_template_part('template-parts/ads/single-top'); ?> <?php the_content(); ?> <?php $partners = get_page_by_title('Twitter follow', OBJECT, 'wp_block'); ?> <?php echo apply_filters('the_content', '<!-- wp:block {"ref":'.$partners->ID.'} /-->'); ?> <?php get_template_part('template-parts/ads/single-bottom'); ?> <?php wp_link_pages( array('before' => '<div class="trawell-paginated">', 'after' => '</div>', 'link_before' => '<span>', 'link_after' => '</span>') ); ?>
直接single.phpなどに書かずに、reuse.phpなどのテンプレートファイルを作成して、テンプレートファイルを読み込む方法も良いかもしれません。
まとめ:
作業はどんどん効率化していきましょう!!
今回のテンプレートファイルで再利用ブロックを表示する方法は、ひょっとしたら利用頻度は少ないかもしれませんが、Elementorなどでかなり凝ったブロックも再利用ブロック化することで、別のページに簡単に表示させることができます。
そうすることで自分でコーディングする必要なく、再利用ブロックを読み込むだけで、ひとつのテンプレートファイルを作成することだって可能ですね。
結構マニアックな内容でしたね!^^
コメント・質問する