リストブロックに階層表示デザイン選択を追加する

公開日:2023(令和5)年6月20日/最終更新日:

WordPress Customize Ideas | Personal WP Customization Notes (PWCN)

【景品表示法に基づく表記】ページ内のコンテンツには、商品プロモーションが含まれています

WordPress標準のリストブロックで、ボタン一発で階層表示できるようになったらいいなということで、ブロックスタイルの追加方法を紹介します。

ちなみにこのブロックスタイルで表示させるとこんな感じになります。階層が深くてもきちんと線が表示されてなかなか使い勝手が良さそうな感じです。

  • 親階層1
    • 子階層
      • 子リスト1
      • 子リスト2
    • 子階層2
      • 子リスト3
        • 孫リスト1
        • 孫リスト2
      • 子リスト4
    • 子階層3
  • 親階層2
    • 子階層4

リストブロックのスタイルに文字の大きさや文字色、背景色の変更があるテーマであれば、それらの変更にも対応します。

以下は階層化ボタンをクリックした後で、文字色を白に、背景色を黒に、文字の大きさをXLにした場合の表示例です。

線の色については簡単にオプション化できないので、白(#fff)にしています

  • 親階層1
    • 子階層
      • 子リスト1
      • 子リスト2
    • 子階層2
      • 子リスト3
        • 孫リスト1
        • 孫リスト2
      • 子リスト4
    • 子階層3
  • 親階層2
    • 子階層4
コードを使用する前に、ここをクリックして注意事項をご確認ください

本ページで掲載しているコードは、以下に了承した上で使用ください

  • コードは商用・非商用問わず自由に使っていただいて構いませんが、コード追加による不具合やトラブルが発生しても当方では一切責任を負いません
  • コードは有効化しているテーマのfunctions.php、style.cssなどへ追加することで機能します。それらのファイルへの変更を行うことに不安のある方は使用しないでください
  • コードは本ページの公開日時点で私の環境において動作したものです。WordPressバージョン他環境の違いによって動作しないことがあります
  • コードは、セキュリティ、コードの正確さなどにおいて完全なものではありません。中には紹介するコードを簡略化するために省略している部分があるものもありますので、ご自身でコードを十分に検証し、必要な部分の編集を行った上で使用するようにしてください
  • 掲載しているのは参考コードです。自身の環境に合わせるための編集はご自身で対応いただく必要があります(コメント欄等から質問いただいても基本回答は致しません)
  • 掲載しているコードの転載を禁じます(SNSで紹介いただいたり、本ページへのリンクを張っていただくことは大歓迎です)

リストブロックの階層スタイルボタン追加方法

それほど難しい作業は必要ありません。有効化している子テーマのfunctions.phpとstyle.cssへこれから紹介するコードを追加するだけで、大抵のテーマでは動作すると思います。

functions.phpへ追加するコード

以下のコードを有効化しているテーマのfunctions.phpへ追加します。

function pwcn_register_list_block_hierarchy_design_styles() {
	register_block_style( 'core/list',array(
		'name' => 'list-hierarchy',
		'label' => __( '階層','textdomain' ),
	));
}
add_action( 'init', 'pwcn_register_list_block_hierarchy_design_styles');

style.cssへ追加するコード

以下のコードを有効化しているテーマのstyle.cssへ追加します。

ul.is-style-list-hierarchy{
list-style: none;
padding: 1em;
padding-left:0;
}
ul.is-style-list-hierarchy li {
list-style: none;
position: relative;
padding-left: 0.9em;
}
.is-style-list-hierarchy ul li:before {
position: absolute;
top: 0.7em;
left: -0.5em;
width: 1em;
margin: auto;
content: "";
}
.is-style-list-hierarchy ul li:after {
position: absolute;
top: 0;
bottom: 0;
left: -0.5em;
height: 100%;
content: "";
}
.is-style-list-hierarchy ul li:last-child:after {
height: 0.7em;
}
.is-style-list-hierarchy ul li:before {
background-color: #000;
height: 1px;
}
.is-style-list-hierarchy ul li:after{
background-color: #000;
width: 1px;
}

最後の数行で線の太さと色を指定していますので、適宜変更してください

style.cssへ追加したコードがブロックエディターに反映されるかどうかは、テーマの仕様によりますから、それぞれのテーマに合わせて工夫が必要な場合があります。
また、このスタイルコードはこのページで使用しているテーマ用のものですので、位置や文字の大きさ、色などを自身の環境に合わせて変更する必要があります。

ブロックエディターで表示させてみる

コードを追加したら、投稿の新規作成をします。既に何かの投稿編集画面が開いていて、そこで試したい場合にはキーボードの「Ctrl」+「F5」を押して念のためキャッシュのクリアと再読み込みをしましょう。

適当にリストブロックを挿入します。問題なく実装できていれば、右側の「スタイル」という欄に「階層」というボタンが出現しているはずです。

リストを適当に階層化(ブロックの上に表示されるツールバーで子階層や親階層の作成ができます)して、「階層」というボタンをクリックしてみてください。

style.cssに記述したスタイルコードがエディター側にも反映される仕組みになっているテーマでは、即座にエディター上でも階層表示されます。

ちなみにもう一度、こんな感じで表示されるはずです。

  • 親階層1
    • 子階層
      • 子リスト1
      • 子リスト2
    • 子階層2
      • 子リスト3
        • 孫リスト1
        • 孫リスト2
      • 子リスト4
    • 子階層3
  • 親階層2
    • 子階層4

エディター側で何も変化がおこならない場合には、「プレビュー」→「新しいタブでプレビュー」を選択して、表示画面側で階層化されているかを確認ください(階層化されていない場合にはスタイルコードを追加する場所が異なっているのかも知れません..これはテーマによるので自身で解決してください)

あとがき

このページでは、リストブロックを階層表示させるためのブロックスタイル追加方法を紹介してきましたが、これに限らず、いろいろなブロックに独自のスタイルを追加して、ボタンで簡単に設定できるようになります。実装方法については以下のページで詳しく書いているので、よかったらどうぞ。

実装してみた方は、感想をページ末尾のコメント欄からお寄せいただければ幸いです(コードだけ参考にしてすっと去られるのはとても寂しいですので...)。ただし、うまくいかなかった、ここをこうしたいといった質問などについてはお応えしかねる場合がありますのでご容赦ください。

, ,
Lolipop ServerMoshimo Ad x-serverMoshimo Ad

WordPress Customize Ideas | Personal WP Customization Notes (PWCN)
functions.phpからセキュリティヘッダーを追加する方法(例)