のっけから関係ない話で恐縮ですが、今現在(2026/2/8夕刻)えらい勢いで雪が降ってます。
明日のことを考えると背筋が寒くなるような状況ですが、とりあえず今から心配したところで何も好転しないのでさしあたってはスルーします。
明日のことは明日考えよう。うん。
生成画像が結構たまってきました。
よせばいいのに「ここらでひとつ、生成画像を別途ギャラリーにしてしまおう」と思いたち、またもや休日を溶かしてしまった次第です。
病根深いのは百も承知…
今回、ブロックテーマに子テーマは要らないというのは幻想であるぞよ、という警鐘も鳴らしておかねばなりませんので、今回はこれについてまとめました。
結論から言うと、ブロックテーマでも子テーマは要ります。
理由は、「いつFunction.phpをいじる羽目になるか、わからないから!」
今回のことで骨身に染みたのですが、「ブロックテーマに子テーマは要らない」という言説をとりあえず信じたのと、そんな大層なカスタマイズをするつもりは更々なかったので、今回新サイトを作るに当たって子テーマをつくりませんでした。
結果的に、失敗です。
なにせ、カテゴリアーカイブのページをつくるのに、1ページあたりの表示数を指定するのでさえFunction.phpに書き込みをする必要がある。
何故カテゴリーアーカイブのページなんかが必要かと言いますと、生成画像をカテゴリ分けして、カテゴリごとにインデックスページをつくりたかったからなのです。しかし、どういうわけかカテゴリひとつについて1件しか表示されない。これではインデックスとして機能しません。
困り果て、例によってコパイ先生に訊いてみたらFunction.phpで指定するしかないというのだから仰天です。

この↑Sを横にしたようなアイコン(ハイライトされてるブロック)で示されるクエリというヤツがアーカイブを拾ってくるのですが。

(右端に出る設定欄)クエリタイプをデフォルトからカスタムに移行すれば

(右端に出る設定欄に)こういうダイアログも出るのです。
しかし、そうするとカテゴリ関係なく全ての投稿を拾ってしまう。これではカテゴリーアーカイブの意味がありません。
仕方がない、コパイ先生にカテゴリーアーカイブを6件ほど拾う仕様のコードを教えて貰いました。
function my_category_posts_per_page( $query ) {
if ( $query->is_main_query() && !is_admin() && $query->is_category() ) {
$query->set( ‘posts_per_page’, 6 ); // ← ここを6件に固定
}
}
add_action( ‘pre_get_posts’, ‘my_category_posts_per_page’ );
たったこれだけのことなんですが…
何が困ると言って、Function.phpはアップデートによって上書きされる可能性がある部分です。うっかりアップデートかけて上記のコードが消されてしまったら、カテゴリアーカイブが元に戻ってしまう。
ええい、子テーマつくるしかないか。
しかし、時遅し。ガッツリカスタマイズした設定内容は、子テーマに引き継がれるとは言いながら結局もう一度紐付けしなければなりません。実質、もう一回最初からやり直しということ。…これは、心が折れます。

AIにキャラを維持してお絵描きしてもらうことの困難さを実感したイラスト。
結局、子テーマはつくらずに消されたら困る部分をメモ書き(下書き)としてサイトの中に維持して、更新が当たったらFunction.phpをチェックするという選択になりました。
時間に余裕があれば、1から作り直してもいいんですけどね。これも勉強ですから。もっと納得のいくレイアウトに出会える可能性だってあるわけですし。
繰返しになりますが、やっぱり結論としては、
「ブロックテーマでも、カスタマイズの可能性がある限りは子テーマはつくっておくべき」
…ですね。
コパイ先生に習って子テーマの自作(Function.phpとstyle.cssだけで構成する)も検討したのですが、あまりイイコトになりませんでした 1ので、今回も結局Child Theme Configuratorのお世話になりました。
…その結果、状況的にはリセットに近いということがわかってそれも諦めたのですが。
ブロックテーマになってから、いろいろ状況が変わりつつあるようですが…
ちゃんと更新のされている(もしくは、されそうな)テーマを使う場合は、子テーマをつくっておくに如くはなし、というのが今回の結論です。

コメント