[GeneratePress]ウィジェットのブロックの表示・非表示をページ種類で切り替えるには?

GeneratePressのウィジェットエディタで、ブロックをページ種類ごとに非表示にすることはできる?

はい、GeneratePressのウィジェットエディタで、ブロックをページ種類ごとに非表示にすることは可能です。

皆さんは、ウェブサイトを作るとき、「このブロックは投稿ページだけに表示したい」「あのブロックは特定のページでは隠したい」と思ったことはありませんか?今回は、GeneratePressというWordPressテーマのウィジェットエディタで、ページごとにブロックの表示・非表示を設定する方法を紹介します。

ブロックって何?ウィジェットエディタって何?

まずは基本から説明しましょう。WordPressでは、ページの中身を「ブロック」という部品で組み立てます。文章ブロック、画像ブロック、見出しブロックなど、さまざまな種類があります。これはレゴブロックのように、いろいろな部品を組み合わせてページを作る仕組みです。

「ウィジェットエディタ」は、サイドバーやフッターなど、ページの主要部分以外の場所に表示する内容を編集するための道具です。ここにも様々なブロックを配置できます。

ページによってブロックを表示・非表示にする方法

ブロックの表示を操るには、以下のような方法があります。まるで魔法のスイッチのように、必要なときだけブロックを表示できるようになりますよ。

1. プラグインを使う方法

プラグインとは、WordPressに機能を追加するソフトのことです。中でも「Block Visibility」というプラグインがとても便利です。

このプラグインを使うと、次のような条件でブロックの表示・非表示を設定できます:

  • 投稿ページだけに表示する
  • 固定ページでは隠す
  • ログインしたユーザーだけに見せる
  • スマホでは表示しない

使い方はとても簡単です。ブロックを選択すると、右側に「Visibility」という設定が現れます。ここで「投稿ページだけに表示する」などの条件を選ぶだけです。

例えるなら、お弁当箱の仕切りのようなもので、「このおかずはお父さんのお弁当だけに入れる」「このデザートは週末だけ入れる」というように、状況に応じて中身を変えられます。

2. PHPコードで制御する方法

もう少し本格的な方法として、PHPというプログラミング言語を使った制御方法もあります。これは料理でいえば、レシピ通りではなく自分で調味料を調合するようなものです。

add_filter( 'allowed_block_types', 'custom_allowed_block_types', 10, 2 );

function custom_allowed_block_types( $allowed_block_types, $block_editor_context ) {
    // 投稿タイプごとに許可するブロックを設定
    if ( 'post' === $block_editor_context->post->post_type ) {
        return array(
            'core/paragraph',
            'core/heading',
        );
    } elseif ( 'page' === $block_editor_context->post->post_type ) {
        return array(
            'core/image',
        );
    }
    return $allowed_block_types;
}
Code language: PHP (php)

このコードをテーマの「functions.php」というファイルに追加すると、投稿ページでは段落と見出しのブロックだけ、固定ページでは画像ブロックだけが表示されるようになります。

こちらの方法は少し難しいですが、自分好みにカスタマイズできるのが魅力です。

サイドバーを投稿ページだけに表示する具体例

「サイドバーの特定のブロックを投稿ページにだけ表示したい」という要望は多いです。これはブログを書いている人によくある悩みですね。

Block Visibilityプラグインを使えば、次の手順で簡単に設定できます:

  1. プラグインをインストールして有効化する
  2. サイドバーに配置したいブロックを選択する
  3. ブロックの右側にある「Visibility」設定を開く
  4. 「Post Type」という条件で「post」(投稿)を選択する

これで、そのブロックは投稿ページでのみ表示され、他のページでは隠れるようになります。まるで魔法のようですね!

どの方法を選べばいい?

「どの方法が一番いいの?」と迷うかもしれませんね。選び方のポイントはこうです:

  • 簡単に設定したいなら → Block Visibilityプラグイン
  • 細かく制御したいなら → PHPコード
  • サイト全体の速度を重視するなら → PHPコード

プラグインは便利ですが、たくさん入れるとサイトが重くなることがあります。一方、PHPコードは軽量ですが、設定が少し難しいです。

ちょうど、自転車とバスの選択のようなものです。自転車(PHPコード)は自由に行けますが運転技術が必要、バス(プラグイン)は簡単に乗れますが決まったルートしか行けません。

まとめ

GeneratePressのウィジェットエディタでは、プラグインやPHPコードを使ってブロックの表示・非表示を自由に設定できます。特に「Block Visibility」プラグインは初心者にもおすすめです。

サイトをもっと使いやすく、見やすくするために、ぜひこれらの方法を試してみてください。あなたのサイトが、訪問者にとってもっと魅力的な場所になるはずです。

ウェブサイト作りは、自分だけの部屋を飾るようなもの。必要なものを必要な場所に配置することで、快適な空間が生まれます。GeneratePressでのブロック表示制御も、そんな「デジタル模様替え」の一つです。楽しみながら試してみてくださいね。