テーマ移行作戦Blocksy脱出 →Hello Elementor③

テーマ移行作戦 Blocksy脱出 → Hello Elementor②

Operation Log No.03 / Phase 03 — Theme Migration
テーマ移行作戦
Blocksy脱出 →
Hello Elementor
2026.03 Operator : 猫工艦 AI Support : Claude Phase 03 / Theme Migration
スマートフォンでサイトを開いたとき、ナビゲーションが正しく動かない。
この一点の問題が、テーマ丸ごとの移行作戦を引き起こした。WordPressテーマの構造的制約と格闘し、最終的に解決策を見つけるまでの記録を公開する。
問題の発覚 — SPナビが動かない

PCでのサイト表示は問題なかった。しかしスマートフォンで確認したとき、致命的な問題が判明した。カスタムHTMLブロックに実装したハンバーガーメニューが、正しく動作しない。

原因を調査すると、Blocksyテーマの構造的な問題であることが判明した。

⚠ 根本原因
Blocksyはすべてのページコンテンツを
.ct-drawer-canvas の内側でレンダリングする。

このラッパーの制約により、カスタムHTMLブロック内の
position: fixed が正常に機能しない。

つまり、どれだけCSSを工夫してもBlocksyのアーキテクチャ上、SPナビのfixedは効かない

これはCSSの書き方の問題ではなく、テーマそのものの構造的制約だった。カスタムCSSで何度試みても解決しない。Blocksy上での解決は事実上不可能という結論に至った。

作戦転換 — テーマ移行の決断

問題が構造的なものである以上、解決策は一つだ。テーマを変える。

候補を絞り込み、最終的に「Hello Elementor」を選択した。軽量でシンプル、かつカスタムHTMLの配置に制約が少ない。ブランドCSSを別途管理できる点も評価した。

✗ Blocksy(旧)
.ct-drawer-canvas がコンテンツを内包
position:fixed がカスタムHTML内で無効
SPナビの実装が構造的に困難
テーマ独自の描画ロジックが多い
✓ Hello Elementor(新)
シンプルな構造でラッパー制約なし
wp_body_openフックが素直に動く
SPナビを#main-containerの外に配置可能
軽量・高速でCSS制御が容易
移行作業の全工程

テーマ変更は単純なワンクリックではない。既存のデザインシステム・CSS・ナビゲーション構造を、新テーマの環境に移植する大規模作業だ。

✓ Step 01
Hello Elementorへテーマ変更
管理画面 → 外観 → テーマ でHello Elementorを有効化。既存のBlocksy設定は無効化されるが、投稿・固定ページのコンテンツは保持される。
✓ Step 02
マスターブランドCSS(v2.1)を移植
Hello Elementorの「追加CSS」にブランドCSSを丸ごと貼り付け。フォント・カラーパレット・ナビ・ヒーローの全スタイルを新テーマ環境に適用。
✓ Step 03
Hello Elementorデフォルト要素を非表示に
テーマデフォルトのヘッダー・ページタイトルが表示される問題をCSSで解消。すべてのページでカスタムHTMLのナビが正しく機能するよう調整。
追加CSS — デフォルト要素の非表示
.entry-header, .page-header { display: none !important; }
.site-header { display: none !important; }
✓ Step 04 — 核心
グローバルナビをfunctions.phpへ移動
最も重要な工程。カスタムHTMLブロック内にあったナビゲーションのHTMLとJSを、WordPressのfunctions.phpに移植。wp_body_openフックを使い、#main-containerの外側にナビを配置することで、position:fixedが正常に機能するようになった。
functions.php — wp_body_openフック
add_action(‘wp_body_open’, ‘nk_global_nav’);
function nk_global_nav() {
  echo ‘<nav id=”nk-nav”>…</nav>’;
  echo ‘<div id=”nk-drawer”>…</div>’;
}
✓ Step 05
ハンバーガー/ドロワーナビの実装
SP(スマートフォン)用のハンバーガーメニューとスライドインドロワーを実装。ナビフォントサイズを1.5倍に設定、SP時はサブテキスト(& CATS_AND_BOLTACTION)を非表示、SHOPボタンの表示調整も完了。
✓ Step 06
全ページのBLOCK 01/02クリーンアップ
旧Blocksyで各ページに埋め込んでいたナビHTMLとJS(BLOCK 01/02)を全ページから削除。functions.phpのグローバルナビに一元化し、重複を解消。HOME・About・Story・Contact・F-2A・Haruna・Yukikaze・Collectionアーカイブページで完了。
学んだこと — WordPressテーマ選定の重要性

今回の作戦で、WordPressのテーマ選定がいかに重要かを痛感した。カスタムHTMLで完全なHTMLを書くアプローチを採用する場合、テーマのアーキテクチャが実装の自由度を大きく左右する

Blocksyは優れたテーマだが、独自の描画ラッパーが「HTMLのフルコントロール」という今回の戦術と相性が悪かった。Hello Elementorのシンプルな構造は、このアプローチと完全に合致していた。

「Blocksyはカスタムコンテンツを.ct-drawer-canvasの中に入れてレンダリングする。
だからposition:fixedが効かない。テーマのアーキテクチャの問題だ。」 — 調査中の結論 / Claude分析

また、WordPressのカスタムHTMLブロックには重要な制約がある。スタイルタグを含む完全なHTMLを貼り付ける場合、ビジュアルエディターに切り替えるとstyleタグがWordPressに削除される。常にコードエディターモードで作業することが必須だ。

さらに、ブロックの区切りコメント(wp:html / /wp:html)をコードに含めてはいけない。これもカスタムHTMLブロックを壊す原因になる。

コード管理の原則 — ブロックコメント規約

テーマ移行を経て、コードの管理方法にも一つの原則が確立された。CSSとPHPのすべてのコードブロックに、開始と終了のコメントを必ず入れる。

確立されたコメント規約
/* ============================================================
   BLOCK: NAV — グローバルナビゲーション
============================================================ */

… コード …

/* END BLOCK: NAV */

このコメント規約により、どのブロックがどの機能を担当するかが一目でわかる。問題が発生した際のロールバック(巻き戻し)も、ブロック単位で対応できる。チームでの作業ではないが、AIとの共同作業においてもコードの可読性と管理性は不可欠だ。

Phase 03 — Mission Result
  • BlocksyのSPナビ問題の根本原因(.ct-drawer-canvasによるposition:fixed無効化)を特定
  • Hello Elementorへのテーマ移行を完了。マスターブランドCSS v2.1を移植
  • wp_body_openフックによるグローバルナビの#main-container外配置を実現
  • ハンバーガー/ドロワーナビのSP実装を完了
  • 全完成ページのBLOCK 01/02クリーンアップを実施
  • ブロックコメント規約(BLOCK: NAME / END BLOCK: NAME)を確立
← Prev Mission
No.02 — サイト設計・構築作戦
記事を読む
Next Mission →
No.04 — Contactフォーム実装作戦
— OFFICIAL STORE —
FIELD TO STREET // 着る、戦術。
NECOKOUCAN SHOP
ミリタリーグッズ・オリジナルTシャツ・全アイテムはこちら
T-TRINITY| PREMIUM TEE| ¥4,400〜
ENTER SHOP →
ttrinity.jp
NECOKOUCAN — EST. 2023 — FUKUOKA