2024年2月 WordPress Meetup 開催情報

2024年2月に開催される WordPress Meetup をご紹介します。

オンラインイベントではエリア外からの参加者を積極的に歓迎しているグループもありますので、気になるトピックがあれば詳細を確認してみることをおすすめします。

今後追加されるイベントについては、ダッシュボードウィジェットやお近くの WordPress Meetup グループもチェックしてみてください。

以下に、1月と12月に開催されたイベントの情報もご紹介します。


2024年1月に開催された WordPress Meetup


2023年12月に開催された WordPress Meetup

#community, #meetup

イベント支援法人設立に対するフィードバックへのコメント

昨年11月と12月公開した投稿に対するコメントありがとうございます。

いただいたコメントを拝見すると「混乱」が生じている可能性があると感じさらなる補足情報をこちらでご紹介させていただきます。

本記事では主に以下の点に絞って補足させていただきます。

  1. 法人格の基本的な機能について
  2. 法人設立案が出てくるまでの実情
  3. 法人設立における責任の所在

法人格の基本的な機能について

団体自体の目的はイベントにおける会計サポートであり、それ以上の特別な決定権や実行力を持たせることは考えていません。

  • 法人としての銀行口座
  • カンファレンス開催における会場契約や保険の契約

法人設立案が出てくるまでの実情

実際にどのような苦悩・問題があったのか

  • 個人の銀行口座が必要になる
    • 任意団体の口座は実際には個人名義
    • マネーロンダリングの懸念などから、国外から個人口座で送金を受け取るのがますます煩わしくなってきている
    • 動く金額が大きい場合、個人への税務的負担が増える可能性がある(例えば税務調査、追徴課税)
    • 企業が任意団体に対してスポンサードしづらい/できないという話がある
    • 今まで使ってきた任意団体のゆうちょ口座(高野名義)は今年 WordCamp Kansai が終わったら閉じる予定
  • 会場契約の難しさ
    • 過去に、法人契約しかできない会場で名前を貸してくださった会社が WordCamp のレギュレーションでスポンサーできなくなったことがあった
    • 名義を変えようとしたらキャンセルが必要となりキャンセル料が発生する状況でそのまま名前だけお借りした

誰に相談しているのか

  • WordCamp Central や WordPress Foundation(米国の非営利法人) へ相談している
  • WordCamp Japanでお世話になった税理士へも相談し、税制の懸念点も明確にしている

他の国のローカルコミュニティはどうしているのか

  • イベントの会計を受け持つ米国法人である WordPress Community Support, PBC. (WPCS) から直接銀行送金できる場合、国内の口座に高額を送金する必要がない
  • 海外 WPCS が会場を借りる団体として署名することができる場合もよくあるが、国内ではほとんどそういうケースはない
    • 契約法人名と支払口座の名称が一致していないと断られることもある
  • 保険の契約もWPCSが会場を借りる団体として契約できる場合WPCSの保険がカバーすることになるが、日本では契約できたことがないので別で個人が保険を契約している
  • WordPress のイベントなどのコミュニティ活動を支援する目的として設立された非公認団体には以下のようなものがある。
    • スペインの ADEWEB
    • ネパールの WPNepal
    • フランスの L’association
    • ポーランドの Fundacja
    • チェコにも存在する
    • オープンソース関連団体に会計などの面で WordPress イベント支援を依頼している国もある。
  • 日本でも、Linux Foundation Japan にオーストラリアの Linux 組織のような会計サポートが可能か相談したことはあるが、別団体であり国内の事情により実現はしなかった
  • 他のオープンソースコミュニティでも、イベント運営のために日本で法人を持っているところがある

なぜ法人を設立するのか

  • 金融取引の明瞭化、個人負担の軽減
    • 上記参照
  • 法的責任のリスクヘッジ
    • 事故、事件、訴訟が起きた場合の責任が個人負担にならないようにする
    • 企業に責任を肩代わりしてもらっても、その企業が最後まで責任を持てるとは限らない

法人設立における責任の所在

誰が発起人なのか

  • 高野/額賀/Gouten/Shuseiが現在話を進めているが、誰が役員になるのかなどについては「決定」していない

どうやって「代替わり」をするのか(案)

  • 理事の任期を決める(2〜3年、事情によっては途中で降りることも可能)
  • 理事の再任についてもルールを決める
  • コミュニティイベントへの貢献経験者・継続的に貢献している方。例えばですが、
    • WordCamp 委員長を務めた人
    • Community Team で役割を持っている人
    • Meetup オーガナイザーを1年以上継続している人

代わりが見つからなかった時はどうするのか

  • 清算・解散

上記が現段階で話し合いが行われている内容となります。

現段階ではまだ何も「決定」はしていません。法人設立に関しても形態や運用についても議論を重ねている段階です。もしこの法人設立に関してフィードバックがある場合は、こちらの投稿へのコメントまたはこちらのフォームよりお問い合わせください。

#accounting-entity

2024年1月 WordPress Meetup 開催情報

2024年1月に開催される WordPress Meetup をご紹介します。

オンラインイベントではエリア外からの参加者を積極的に歓迎しているグループもありますので、気になるトピックがあれば詳細を確認してみることをおすすめします。

今後追加されるイベントについては、ダッシュボードウィジェットやお近くの WordPress Meetup グループもチェックしてみてください。

以下に、12月と11月に開催されたイベントの情報もご紹介します。


2023年12月に開催された WordPress Meetup


2023年11月に開催された WordPress Meetup


#community, #meetup

イベント会計用の法人設立のご意見についてのフィードバック

「日本国内 WordPress イベント会計用の法人設立についての意見募集」へのコメントありがとうございました!

日本国内における WordPress イベント会計用の法人設立についての意見募集

いただいたご意見をもとに、説明が不足していると感じた部分もありましたので補足をしつつ、質問へ回答をいたします。

<補足情報>

1.現状の課題と背景

現在、国内WordCampの運営は任意団体名義(実質は個人口座)、または個人名義の銀行口座を借りて行われています。この形態が抱えている問題は以下のとおりです。

金融取引上の問題

  • グローバルスポンサー費のような海外送金の受け取りが難しい、または不可能
  • 会場やレンタル事業者によっては個人名義の口座との取引ができないことがある
  • 事業者によっては WordCamp セントラルから直接クレジットカードや海外送金で費用を支払うことができない場合も多い
  • 大きな金額が動くので、税務上の問題が発生しかねない(個人の収入とみなされるリスクが有る。税務負荷はなくとも、調査や会計情報提出などで時間的負担が個人にかかる可能性もある)
  • スポンサー企業のコンプライアンス上、個人口座へのスポンサー費用送金が難しいことがある(この傾向は今後さらに高まることと思われる)

法的責任範囲の問題

  • 会場契約などの際に法人でなければ契約できないというルールがある場合もあり、運営者ではない法人のご厚意で代理契約をしていただくことがある
  • イベント保険の名義人が運営者個人名になり、万が一の事が起こった場合の責任範囲が大きい

権限集中の問題

  • 利用口座が個人1名に属しているため、不慮の事故などが起きた場合や意図的に利用をブロックするなど、口座が完全に使えなくなるリスクが存在する
  • ウェブサービスなどのアカウントの共有範囲が曖昧になり、各年それぞれ違う運営チームにアクセスがうまくバトンタッチされないことがある。法人設立自体で直接解決できることとはいえないが、毎年のスムーズな運営を補助する体制は作りやすくなる

2. 具体例

具体的な例として、法人化によって解決される(負担が軽減される)と考えている問題は以下となります。

  • 会場・業者との契約
  • イベント保険の取扱い
  • スポンサー企業からの入金処理
  • 口座の名義人変更
  • 有形・無形資産の保管
    • イベントでの使用する什器
    • サブスクリプションアカウントの管理
    • レンタルサーバーの契約

<質問回答>

コミュニティで有料のサービスを一括で利用したいみたいな場合にもお金が出せるようにはしておいたほうがいいかなとは思います。

@mebius0

上記の「権限集中の問題」でも触れましたが、今までサービスの継続利用などが難しかったのですが、そういった面でもサポートが可能になると思っています。実際にどこまでのサポートを行うか現時点で決定はしていませんが、コミュニティ全体の利益になるよう運営できればと思います。

「WordCampなど」と幅を持たせているのが気になったので、WordCamp(公式イベント)に限っても良いのかも?とは思いました。

@mekemoke

余剰金(ないことが望ましいけども)が出た場合やミートアップでも同じような事が起きることが「など」の理由かもと思いました。

@musus

ご指摘ありがとうございます。この法人が関与するイベントの定義を、「WordPress 公認イベント(※)」の範囲にしたいと思います。
※ WordPress 公認イベントとは、WordCamp・WordPress Meetup・do_action・Next Gen Events・Translation Day・Accessibility Day・Contributor Dayなど、https://events.wordpress.org/ に掲載されるすべてのイベントを指します。

「定期的に人員の入れ替え」をしていくというところです。結果的に同じ人に負担がかかった状態で理事や主要なメンバーは変わらないんじゃないかという気もしています。

変わるのがむずかしい場合は基本的には変わらないことを明記するか、任期や専任方法をもう少しだけ明確化(どんな人が対象で、メンバーの投票で決めるとか)できるとよいかと思いました。維持が難しくなったら解散という記載もあるので、その時はその時という感じでもいいですけどね。

@musus

任期や入れ替えのプロセスの詳細はこれから詰めていく必要がありますが、明確化することは必須だというご意見に同意します。

「今感じている面倒が、法人設立でなくなる」という考えではなく、「今感じている面倒が、法人設立で別な面倒に置き換わる」といった考えの方がリアルかと思います。その上で、法人設立すべきかぜひ検討するといいと思います。
> 一般社団法人の場合、社員の中から理事や監事の選任が必要になり、これらの役員は登記されます。この役員に関しては、変わるたびに登記変更が必要になります。また銀行口座には代表理事の名前も併記されるので、代表理事が変わるたびに口座名義の変更も必要になります。更に、e-tax で確定申告を行おうとすると、代表理事の電子署名をつけて送信することになります(たしか)。こういったことを踏まえると、役員の頻繁な変更は望ましくないと思います。

@bsanevans

手続きにかかる時間や手間を踏まえ、数年ごとの変更を考えています。頻繁ではなく、かといって同じ人に負担がかかり続けることのない(同じ人が専有し続けることのない)変更をできたらと考えています。

非営利型一般社団法人も、法人税はかからないにしても、住民税が毎年かかります。また、登記内容を変更するたびには登録免許税もかかります。設立にも10万近くかかるのではないでしょうか。WordCamp から法人にお金を払う過程で、こういった経費を賄うだけの追加資金も徴収することになると思います。

@bsanevans

設立費用については、現時点で WordCamp Tokyo の口座にある余剰金を使えるかどうか WordCamp Central に確認予定です。住民税の予算については、年間を通してのイベントの予算に組み込むなど、検討していければと思っています。

法人を設立し「正しく」運営しようとすると、定期的な理事会の開催、議事録への役員全員による署名、議決事項の主たる事務所への公告、などが発生します。どれも難しくないですが、リモート活動中心の WordPress コミュニティーにとっては、ちょっと面倒なことも出てくるかもしれません。

@bsanevans

また今回の法人の活動内容が本当に収益事業に該当しないかどうかは専門家の意見ももらって慎重に考える必要があると思います。例えば WordCamp からお金をもらい、代わりに会計処理業務や会場確保の事務処理業務を請け負ったと税務署に見られれば、請負業として法人税がかかります。そういった場合、あえて営利型一般社団法人として登記し、会計の赤字を翌年に持ち込みやすくする体制にした方がメリットがあるかもしれません。

@bsanevans

専門家(税理士・司法書士)や非営利団体運営経験のある方々の意見をいただきながら、法人形態や運営方法を慎重に選定していければと思っています。


基本的に法人設立について、皆さま賛成してくださっていると受け止めております。

頂いたご意見や懸念点を踏まえて、法人設立への作業を前に進めながら、決定事項や進捗を定期的に共有させていただければと考えております。

引き続きどうぞよろしくお願いいたします。

#accounting-entity

ja.wordpress.orgのデザイン調整について

今年の夏頃からWordSlack( wpja.slack.com ) 上で相談していた新しい wordpress.org テーマの日本語へのローカライズについて、12月13日に有志数名でオンラインミーティングを行い今後の方針を話し合いました。その内容と、今後の方針について共有します。

ミーティングの参加者:

@nao, @nukaga, @atachibana, @wildworks, @rocketmartue, @mimitips

これまでの経緯

すでに、英語版のWordPress.org (https://wordpress.org/)で適用されている新テーマについて、そのGitHubリポジトリ上でさまざまな相談が行われています。その一つのIssueのコメントで以下の投げかけがありました。

既存のタイポグラフィが(ロゼッタ)サイトにとって機能しない場合、代替案を追加したり、より良いフォールバックを追加したりすることができると思います。問題があるサイトはありますか?

https://github.com/WordPress/wporg-main-2022/issues/266#issuecomment-1652271431

これに対し、ロゼッタサイトのひとつである日本語版(ja.wordpress.org)において、文字のサイズやline-height等を調整するデザイン案を作成し、独自のCSS等を当てる調整をしたい要望を提案しています。

さらに詳しい経緯を知りたい方は該当のIssueの続きを参照してください。
https://github.com/WordPress/wporg-main-2022/issues/266#issuecomment-1652271431

この議論を前に進めるために、オンラインMTGを行いました。その内容は以下の通りです。

議事録

以下、議論の内容を主に箇条書きでまとめます。

そもそもロゼッタサイトとはなにですか?

  • xxxx.wordpress.orgxxxxja, de, es とかの多言語化されたものを指す
    https://make.wordpress.org/polyglots/handbook/for-locale-managers/rosetta-expectations/#what-is-a-rosetta-site-what-about-forums

各ローカルコミュニティの管理権限の現状について

  • 誰が担当者かなどは以下に一覧がある https://make.wordpress.org/polyglots/teams/?locale=ja
  • ロケールマネージャー等の権限ではサイトのデザインに関する変更の権限は現状無い様子
    • 追加CSSなどの機能が使えない状態であることが判明

期限とコストの問題について

  • 新しいテーマをなるべく早くja.wordpress.orgに適用したい
  • ある程度時間が立つと(デザインが崩れていようがいまいが)新しいテーマに切り替えられる予定である
  • 日本語版のみの問題を解決する方法をまずは探ったほうが短期的な解決には良さそう
  • 長期的に見ると、今後多言語化の機能の話をするのであれば、もっと非ラテン言語でのこれらの現状について積極的に声を上げる必要があるのではないか?
  • 短期的な方法を現実的な方法として進めて、(余裕があれば)長期的なアプローチも検討してみるのが良いのでは?

どのようにローカル用のスタイルを適用するべきか

下記の3通りの方法が相談されました。

  1. 該当のテーマのリポジトリに言語で切り分けてスタイルを追加するプルリクエスト(以下PR)を作成する
  2. wordpress.orgのWordPress上のカスタマイザーまたは(サイト)エディター上の追加CSSを使用できるように掛け合ってみる
  3. 専用のプラグインを作成し、wordpress.orgのリポジトリへPRを作成する
    • 過去、ローカルのサイトにプラグインの追加等GUI上で直接CSSの追記ができるように許可されたことは?
      • 記憶の限りでは無いはず
    • 全体の問題を解決する方法として良いアプローチだが現状を踏まえると様々な調整が必要で実行には時間がかかりそう

スタイルをどこまで書くか

  • CSSの変数を書き換えればある程度調整効くのでは?
    • ex. --wp--preset--font-size--heading-cta: 90px;
  • 加えて、まずはトップページだけは調整するのが良いのでは
  • 残りの下層ページについては時間をかけるかさらにコントリビューターを募って進めていけたら

TODO

  • Issueでtest.wordpress.orgの権限を相談してみる – 濵野さん @wildworks
    • 承認されたら、GUIの追加CSSを有効化する手段を探る
  • デザイン等で貢献したい人には呼びかける (この記事)
    • トップページのテスト
    • 下層ページのテスト、CSS 提案
    • 翻訳の調整(必要であれば)
  • デザイン(Figma): トップのデザインでリードの長いバージョンに合わせて調整しなおす – 順子さん @nukaga
  • CSSを共同で書き始める場所を作る – @mimitips

作業を手伝いたい方を募集しています

というわけで、なるべく早く新デザインに移行するために上記の方針で作業を進める予定ですが、今後に向けて、以下のような作業が必要となる見込みです。これらについて協力してくださる方があると助かります。

デザイン提案や動作テスト

下層ページのスタイルを確認し、不具合や必要な調整がないかチェックします。必要であれば、追加のデザインの提案する作業が発生する可能性があります。

CSSを記述する

上記に関連して実際のCSSを記述してPRを作成する作業が発生する可能性があります。

翻訳について

CSSのみで修正できないスタイルについて、GlotPress上で調整する作業が発生する可能性があります。

今後について気になる方、手伝ってみたい方がいらっしゃいましたらぜひ該当のSlackチャンネル等でお声がけください。日本語のSlackチャンネルの参加方法はこちらを参照ください

#design

2023年12月 WordPress Meetup 開催情報

2023年12月に開催される WordPress Meetup をご紹介します。

オンラインイベントではエリア外からの参加者を積極的に歓迎しているグループもありますので、気になるトピックがあれば詳細を確認してみることをおすすめします。

今後追加されるイベントについては、ダッシュボードウィジェットやお近くの WordPress Meetup グループもチェックしてみてください。

以下に、11月と10月に開催されたイベントの情報もご紹介します。


2023年11月に開催された WordPress Meetup


2023年10月に開催された WordPress Meetup


#community, #learn-wordpress, #meetup

日本国内における WordPress イベント会計用の法人設立についての意見募集

こんにちは!日本にいる WordPress コミュニティのメンバー( @nukaga @nao @st810amaze @gouten5010 )で、 WordPressコミュニティ向けの法人設立を検討する話が出ています。

背景

もともとはWordCampなど大きなイベントをする際に、会場を借りる時などに日本での法人格が必要となることが多く、今まではWordCampに関わる法人の方から名前をお借りしていたりしました。

しかし、それは実情とあっていなく、またWordPressイベントでの会場費が高額な場合、その法人にかかる責任や負担が大きすぎるという認識です。

また、WordCampでかかる費用の入出金でも法人格が必要となる場があり、会計処理をこのまま各WordCampの「実行委員会」という任意団体が他の任意の法人名や個人名を借りつつ行うことは、健全ではないのではないかという議論からの法人設立の検討となっています。

日本でWordCampが初開催された2008年から15年が経ち、当時とは開催規模も変わってきました。その間に日本の税制度にも多くの変更があり、より適切な対応を求められるようになってきています。

この団体の主たる目的はイベントにおける会計サポートであり、それ以上の特別な決定権や実行力を持たせる予定や必要はありません。

目的

  • 会計用口座の維持管理
  • イベント会場等、法人格が必要となる契約
  • 日本の税務制度への適切な対応
  • 長期的なイベント運営の継続を可能にするための手続きの透明化

手段

  1. 中核となる法人を日本国内で設立し、イベント(主に WordCamp 等)開催時の主たる契約者となり、国内コミュニティの発展に繋げる。
  2. 設立時のメンバーのみで法人の運営を続けるのではなく、設立時に設定した任期に従って定期的に人員の入れ替えをしていく仕組みにする。
  3. 継続の必要性がなくなったり、維持が難しくなった場合は解散する。

現在法人設立について話し合っている段階であり、何も最終的な決定はしていません。法人形式は、非営利型一般社団法人を検討しております(非営利型一般社団法人とは)。

賛成、反対、疑問点などあれば本記事コメント欄にぜひご記入ください。3週間後までご意見を募集し、その後、頂いたコメントを反映して次のステップを考えていきたいと思います。

#accounting-entity

2023年11月 WordPress Meetup 開催情報

2023年11月に開催される WordPress Meetup をご紹介します。

オンラインイベントではエリア外からの参加者を積極的に歓迎しているグループもありますので、気になるトピックがあれば詳細を確認してみることをおすすめします。

今後追加されるイベントについては、ダッシュボードウィジェットやお近くの WordPress Meetup グループもチェックしてみてください。

以下に、10月と9月に開催されたイベントの情報もご紹介します。


2023年10月に開催された WordPress Meetup


2023年9月に開催された WordPress Meetup


#community, #learn-wordpress, #meetup

Core Contributor Handbook の日本語版が公開されました

Core Contributor Handbook の 日本語版作成がこちらの記事で提案されましたが、全ページの翻訳が完了し、日本語版ハンドブックとして公開されました。

原文との差異や誤りを見つけた方は、ぜひ コアハンドブック翻訳用 GitHub リポジトリまたは WordPress 日本語 Slack の #docs チャンネルでご連絡ください。

関連リンク


賛辞: 翻訳作業に貢献された @atachibana さん、 @azuma3derive さん、 @mimitips さん、 @nano195 さん、 @nao さん、 @nukaga さん、 @osamunize さん、 @torikumo さん。そして、GitHub 上での翻訳作業のために使用した wp-handbook-converter の開発者である @mirucon さん。

#docs

theme.json でのカスタム設定の追加と利用

原文
https://developer.wordpress.org/news/2023/08/adding-and-using-custom-settings-in-theme-json/
Justin Tadlock
2023年8月31日

私が theme.json で気に入っている機能のひとつが、「カスタム設定」のサポートです。ブロックシステム上での最も強力な構築方法のひとつですが、テーマ作成コミュニティではあまり活用されていません。

他のほとんどの theme.json プロパティとは異なり、カスタム設定は、インターフェイスのコントロールや、ユーザーが操作できる何かとは結びついていません。その動きを考えると「設定」という言葉さえ、少し無理を感じます。

カスタム設定が行っているのは実際には、WordPressがエディターやフロントエンドで出力する、CSSカスタムプロパティ (別名 CSS 変数) の設定です。

この記事では、カスタム設定がどのように機能し、何ができるのかを一緒に探索します。また実践的な例も見ていきます。この記事を読み終える頃には、その可能性を理解し、自分のテーマ内でユーザーに提供可能な限界に挑戦し始めることを願っています。

カスタム設定の動き

テキストシャドウに、サイト全体でひとつのグローバルな値を使いたいとします。伝統的なスタイルシートであれば、以下のようにCSSを記述します。

body {
	--text-shadow: 2px 2px 2px rgba( 0, 0, 0, 0.3 );
}

そうしたければ、この書き方を続けても何の問題ありません。しかし、私は WordPress 流の方法をお勧めします。

早速、試してみましょう。まず、theme.json ファイルに以下のコードを追加します。

{
	"$schema": "https://schemas.wp.org/trunk/theme.json",
	"version": 2,
	"settings": {
		"custom": {
			"textShadow": "2px 2px 2px rgba( 0, 0, 0, 0.3 )"
		}
	}
}

WordPress は自動的に CSS カスタムプロパティを生成し、フロントエンドとエディターの両方に読み込みます。結果のCSSコードは次のようになります。

body {
	--wp--custom--text-shadow: 2px 2px 2px rgba( 0, 0, 0, 0.3 );
}

カスタム CSS と WordPress が生成する CSS の違いはなんでしょう ? それは CSS カスタムプロパティの名前です。

この名前は theme.json から来る他のプリセット (カスタムフォントサイズ、スペーシングスケール、色など) に従います。例えば、パレットにある色の CSS カスタムプロパティ名は --wp--preset--color--{$slug} です。

つまりこの機能は、標準的な命名規則に従った CSS カスタムプロパティを作成します。

ヒント: WordPress は生成された CSS の中で、自動的にキャメルケースのプロパティをハイフン形式に変換します。たとえば textShadow は text-shadow になります。数字も大文字と同じように扱われることに注意してください。

なぜ WordPress 規約に従うのか ?

CSS のカスタムプロパティを作成するだけなのに、なぜ WordPress の標準に従わなければならないのでしょう ? 自分しか使わないのに。

経験則から言うと、できる限り WordPress の組み込み機能を使うべきです。そうすればより多くの機能やツールにアクセスできます。カスタム設定も同じです。

いくつか例を挙げてみます。きっとメリットがわかるはずです !

グローバルスタイルのバリエーションと子テーマでの上書き

カスタム設定を使用すると、グローバルスタイルのバリエーションや子テーマで、簡単に値を上書きできます。

上の text-shadow の例を思い出してください。テーマのバリエーションから上書きしてみましょう。新しい /styles/example.json ファイルを作成し、次の JSON コードを追加します。

{
	"$schema": "https://schemas.wp.org/trunk/theme.json",
	"version": 2,
	"title": "Example",
	"settings": {
		"custom": {
			"textShadow": "2px 2px 2px rgba( 0, 0, 0, 0.7 )"
		}
	}
}

「外観」 > 「エディター」 > 「スタイル」で、例のスタイルバリエーションを保存すると、WordPress は /styles/example.json の settings.custom.textShadow の値を使用して、以下の CSS を出力します。

body {
	--wp--custom--text-shadow: 2px 2px 2px rgba( 0, 0, 0, 0.7 );
}

上書きはほんの始まりに過ぎません。カスタムバリエーションや子テーマのために (そして子テーマの中で)、まったく新しいプロパティも定義できます。

ブロックごとのカスタムプロパティ

WordPress の方法で行うことで、特定のブロックのためのカスタムプロパティも書けます。自身のグローバル設定をブロックレベルで上書きすることさえできます。

例えば、見出しブロックが使用されているときに text-shadow プロパティを変更したいとします。それには、settings.blocks[core/heading].custom.textShadow を使用します。以下を試してみてください。

{
	"$schema": "https://schemas.wp.org/trunk/theme.json",
	"version": 2,
	"settings": {
		"custom": {
			"textShadow": "2px 2px 2px rgba( 0, 0, 0, 0.3 )"
		},
		"blocks": {
			"core/heading": {
				"custom": {
					"textShadow": "2px 2px 2px rgba( 0, 0, 0, 0.7 )"
				}
			}
		}
	}
}

WordPress は以下の CSS を生成します。

body {
	--wp--custom--text-shadow: 2px 2px 2px rgba( 0, 0, 0, 0.3 );
}

.wp-block-heading {
	--wp--custom--text-shadow: 2px 2px 2px rgba( 0, 0, 0, 0.7 );
}

theme.json データのフィルタリング

より高度な使用例として、theme.json 関連のフィルターフックと関数を通して、設定にアクセスできます。例えば、wp_theme_json_data_theme をフィルタリングして、動的にデータを変更できます。

詳しくは「サーバーサイドフィルタを使用して theme.json データを変更する方法」を参照してください。

カスタム設定とブロックプラグインの統合

ブロックプラグインの中には、テーマが CSS カスタムプロパティのデフォルト値を定義できるものもあります。もちろん、プラグインはカスタムプロパティを使用し、 theme.json と互換性のある方法で名前を付けなければなりません。

ここで、架空のサードパーティ製ブロック「Super Duper」のサポートを追加したいとします。その CSS にはカスタムプロパティがあり、ブロックのデフォルトの高さを設定し、CSS フィルタを適用します。

.wp-block-super-duper {
	height: var( --wp--custom--super-duper--height, 1rem );
	filter: var( --wp--custom--super-duper--filter, blur( 8px ) );
}

まず最初に、テーマのことを考え、CSS カスタムプロパティを名前空間化してくれた、プラグイン作者に感謝しましょう。

サードパーティのブロックが存在すれば、theme.json でheight と filter プロパティをカスタマイズできます。

{
	"$schema": "https://schemas.wp.org/trunk/theme.json",
	"version": 2,
	"settings": {
		"custom": {
			"superDuper": {
				"height": "1.5rem",
				"filter": "grayscale( 100% )"
			}
		}
	}
}

このテクニックを使用したブロックプラグインはあまり見かけませんが、ないわけではありません。私の希望は、これがブロック開発のスタンダードになることです。

ヒント: あなたはブロック開発者ですか ? テーマの作者たちは、あなたのコードと簡単に統合できることを熱望しています。このテクニックの詳細については、「ブロックのスタイリング: CSS カスタムプロパティでユーザーに力を」の「テーマの互換性に関する注意」を参照ください。

実際的なユースケース: フォーム入力のスタイリング

theme.json 内でいくつかのベースとなる要素やブロックをスタイリングするだけでも、かなりのことが可能です。しかし、WordPress のコア内で得られるデザインツールに限られます。それ以上を望むのであれば、カスタム設定の利用が必要です。

たとえば theme.json は標準的なデザイン機能でのフォーム要素のスタイリングをサポートしていません。実はこれは私の悩みの種の1つでもあります。

より良いフォーム処理に努めているコントリビューターもいます。しかし、目の前に締め切りが来ている状況では、次のリリースを待ってはいられないでしょう。そこで、settings.custom で基本的なサポートを追加する方法を説明します。

theme.json 内でのカスタムプロパティの作成

サンプルコードが複雑にならないように、少ない色数で試します。ここでは <input><select><textarea> 要素にテキスト色、背景色、ボーダー色を追加します。もちろん、これをタイポグラフィや影、他の任意の CSS 仕様に拡張できます。

まず、使いたい3色を選びましょう。ここではグレーのミックスにします。

ログインフォームの例。青い背景、白いフォーム、グレーの入力フィールド

theme.json の settings.custom.formInput オブジェクトの下に色を追加します。

{
	"$schema": "https://schemas.wp.org/trunk/theme.json",
	"version": 2,
	"settings": {
		"custom": {
			"formInput": {
				"color": "#000000",
				"background": "#f1f5f9",
				"borderColor": "#e2e8f0"
			}
		}
	}
}

コードの中の変化に気づきましたか ? これまでの例では settings.custom オブジェクトの直下にカスタムプロパティと値をネストしていました。この theme.json コードでは、別のネストオブジェクトを追加し、フォーム入力用のすべての CSS カスタムプロパティをまとめてグループ化しています。

そして、これが WordPress が出力するCSSです。

body {
	--wp--custom--form-input--color: #000000;
	--wp--custom--form-input--background: #f1f5f9;
	--wp--custom--form-input--border-color: #e2e8f0;
}

WordPress は適切な入れ子で、プロパティ名を生成します。すべての正しいレベルを順番に追加し、2つのハイフンでつなぎます。

settings.custom の中には、好きなだけネストを増やせます。しかし、あまりやり過ぎない方がいいでしょう。レベルが増えれば増えるほど、CSS カスタムプロパティ名は長く複雑になります。

CSS でのカスタムプロパティの使用

次のステップはこのカスタムプロパティを使用する番です。つまり、CSS ファイルのどこかにコードを貼り付けます。ところでこのチュートリアルではスタイリングに必要なすべてを、テーマのプライマリ style.css ファイルで読み込むと仮定しています。

ですので、以下のコードをテーマの style.css に追加します。

input:where( :not( [type=checkbox] ):not( [type=radio ] ) ),
select,
textarea {
	color: var( --wp--custom--form-input--color, inherit );
	background: var( --wp--custom--form-input--background, transparent );
	border: 1px solid var( --wp--custom--form-input--border-color, currentColor );
	/* Other CSS rules... */
}

もちろんフォーム全体のスタイリングを整えるには、おそらく CSS を刷新したいところでしょう。このコードは、サンプルとして定義したカスタムプロパティの使い方を紹介することのみを目的としています。

テストでは「Login/out」コアブロックを使用しています (フォーム表示のためログアウトした状態)。サンプルとしてはちょっとまずい選択だったかもしれません。WordPress 6.3 でも、このフォームのスタイリング (の欠如) はいまイチです。

今できるところを対処しましょう。以下の CSS を使用して、Login/out ブロックのレイアウトを使えるものにします。

.wp-block-loginout form {
	display: grid;
	grid-template-columns: repeat( 1, 1fr );
	gap: var( --wp--style--block-gap );
}

.wp-block-loginout form > * {
	margin: 0;
}

.wp-block-loginout form input:not([type=submit]):not([type=checkbox]):not([type=hidden]) {
	box-sizing: border-box;
	display: block;
	width: 100%;
}

ただしこのコードはブロックのレイアウト問題を修正するだけです。その他のスタイルルールは、あなたの宿題とします。

子テーマ、またはスタイルバリエーションでの上書き

子テーマの theme.json ファイル、またはテーマの /styles フォルダ内のグローバルスタイルバリエーションで調整してみましょう。どちらの方法でも同じ結果になります。

ここでは以下の JSON コードを、任意の子テーマの theme.json に追加しました。

{
	"$schema": "https://schemas.wp.org/trunk/theme.json",
	"version": 2,
	"settings": {
		"custom": {
			"formInput": {
				"background": "#f0ebe4",
				"borderColor": "#e9e1d8"
			}
		}
	}
}

コードをよく見ると、親テーマの theme.json で定義されていた settings.formInput.color プロパティが欠けていますが、これは意図的なものです。WordPress の theme.json システムは階層構造になっていて、プロパティは親レベルから継承されます。

WordPress は親と子の両方の theme.json ファイルからデータを取得して、以下の CSS を生成します。

body {
	--wp--custom--form-input--color: #000000;
	--wp--custom--form-input--background: #f0ebe4;
	--wp--custom--form-input--border-color: #e9e1d8;
}

子テーマを有効化するとフォームは以下のようになります。

ログインフォームの例。紅褐色の背景、明るい茶色のフォーム、少し暗い入力フィールド

この方法は私がテーマでカスタムスタイルルールを追加する際に、常用するテクニックのひとつになりました。私は常に子テーマの作者が、この簡単なカスタマイズ方法を理解することを希望します。これは非常に柔軟性のある強力な機能です。あなたのテーマでも試してみてください。

Props to @marybaum and @bph レビューとフィードバックに対して

タグ:

Block themesClassic themestheme.json