Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kansai WordPress Meetup@大阪『ブロックテーマを作る上で知っておくべきこと

Kansai WordPress Meetup@大阪『ブロックテーマを作る上で知っておくべきこと

Toro_Unit (Hiroshi Urabe)

November 14, 2026

Transcript

31 slides
  1. Twenty Twenty-Two (WordPress 5.9 / 2022年1月) Twenty Twenty-Three (WordPress 6.1

    / 2022年11月) Twenty Twenty-Four (WordPress 6.4 / 2023年11月) Twenty Twenty-Five (WordPress 6.7 / 2024年11月) Ipsum (WordPress 7.2 / 2026年12月予定) 4
  2. ここ1〜2年のブロックテーマの進化 レスポンシブスタイル @mobile / @tablet (7.1) ナビゲーションオーバーレイ モバイルメニューをブロックで (7.0) 画面幅ごとのブロック表示切り替え

    (7.0) :hover / :focus を theme.json で (7.0〜) 角丸プリセット・フォーム要素のスタイル (6.9) 新ブロック: Accordion / Icon / Breadcrumbs / Tabs 5
  3. 例: Twenty Twenty-Five <!-- wp:template-part {"slug":"header"} /--> <!-- wp:group {"tagName":"main","style":{"spacing":{"margin":{"top":"var:preset|spacing|60"}}},"layout":{"type":"constrained"}}

    --> <main class="wp-block-group" style="margin-top:var(--wp--preset--spacing--60)"> <!-- wp:query-title {"type":"archive"} /--> <!-- wp:term-description /--> <!-- wp:pattern {"slug":"twentytwentyfive/template-query-loop"} /--> </main> <!-- /wp:group --> <!-- wp:template-part {"slug":"footer"} /--> <main> がグループブロック(constrained)になっている 11
  4. ナビゲーションブロックの使いどころ ナビゲーションブロックを複数設置すると id をテーマに直書きすることに なり、開発・運用に難あり。テーマで1つだけ使うと考えると楽 編集可能なリンク集 != ナビゲーションではない。( クラシックテーマから の大きな違い)

    使うのはヘッダーなどのグローバルナビゲーションくらいで良い フッターのリンク集などは、リスト / 段落ブロック + パターンで十分 テーマを編集できる権限 = ナビゲーションを編集できる権限 14
  5. レスポンシブスタイル(7.1〜) モバイルファーストではない! ブレークポイント無し = 全画面幅 → @tablet or @mobile で上書き

    "styles": { "blocks": { "core/paragraph": { "typography": { "fontSize": "1.25rem" }, "@tablet": { "typography": { "fontSize": "1.125rem" } }, "@mobile": { "typography": { "fontSize": "1rem" }, "elements": { "link": { "color": { "text": "blue" } } }, "css": "letter-spacing: 0;" } } } } 16
  6. レスポンシブスタイルの書き方 / @mobile.elements.{element} @mobile の中に "css" も書ける 補足: セクションスタイル( styles/sections/*.json

    )でも使える セクション自体の styles.@mobile は 7.2 から https://github.com/torounit/section-styles-demo blocks.{block}.@mobile 17
  7. ブレークポイントは theme.json で変更できる "settings": { "viewport": { "mobile": "30rem", "tablet":

    "45rem" } } デフォルト: @mobile = 〜480px / @tablet = 480px〜782px レスポンシブスタイル・ブロックの表示切り替え・エディタのプレビュー に反映 18
  8. ただし、コアブロックの CSS は固定のまま 782px: カラム / 600px: メディアとテキスト / ナビゲーション

    / ギャラリー / 投稿テンプレート settings.viewport を変えても、これらは追従しない #79104(viewport を追加した PR)で作者が明言 固定のブレークポイントは今は対応しない いずれ新しいレスポンシブの仕組みに置き換わる想定 関連: #35848 / #45040 19
  9. マークアップ patterns/hidden-post-card.php <!-- wp:group {"className":"is-style-notched","layout":{"type":"default"}} --> <div class="wp-block-group is-style-notched"> <!--

    wp:post-featured-image {"isLink":true,"scale":"cover","height":"100%"} /--> <!-- wp:group {"layout":{"type":"default"}} --> <div class="wp-block-group"> <!-- wp:post-title {"level":2,"isLink":true} /--> <!-- wp:post-date /--> </div> <!-- /wp:group --> </div> <!-- /wp:group --> セクションスタイルを選んだグループブロック + コアブロックだけ 22
  10. 役割分担 セクションスタイル( styles/sections/notched.json ) ブレークポイントごとに変わる値 アスペクト比・余白・文字サイズ・CSS 変数 style.css 構造: grid

    / clip-path: shape() / calc-size() 基本的には、theme.json の css で完結させたいが、複雑な css はメンテ ナンス性が悪すぎるので、style.css に記述。 23
  11. セクションスタイル側: 値を渡す "styles": { "css": "--notch-columns:20;--notch-min-columns:4;--notch-share:0.4;", "@tablet": { "dimensions": {

    "aspectRatio": "var:preset|aspect-ratio|square" }, "css": "--notch-columns:6;--notch-min-columns:2;--notch-share:0.5;" }, "@mobile": { "dimensions": { "aspectRatio": "var:preset|aspect-ratio|square" }, "css": "--notch-columns:6;--notch-min-columns:2;--notch-share:0.5;" } } メディアクエリは CSS に書かない 24
  12. style.css 側: 値を使う .is-style-notched { container-type: inline-size; display: grid; grid-template-columns:

    auto 1fr; /* デフォルト値は詳細度 0 で。セクションスタイル側が必ず勝つ */ :where(&) { --notch-columns: 20; --notch-min-columns: 4; --notch-share: 0.4; } > :not(.wp-block-post-featured-image) { width: calc(var(--notch-track) * var(--notch-share)); } } 25

More Decks by Toro_Unit (Hiroshi Urabe)

Other Decks in Technology