Slide 1

Slide 1 text

2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 2

Slide 2 text

$name = ほんだとしゆき 京都府生まれ。香川県高松市在住。
 音大卒業後、いくつかの職を経て、 現在はフリーランスのうぇぶ屋さんをしています。
 WordPress を使ったサイト構築、メンテナンス、 セキュリティ対応、制作会社の WordPress 関連の 相談役などをしています。 まーちゅう @RocketMartue 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 3

Slide 3 text

$name = ほんだとしゆき まーちゅう @RocketMartue WordCamp Ogijima 2018 / 2020 実行委員 Kagawa WordPress Meetup のオーガナイザー 日本語 WordPress 
 サポートフォーラムのモデレーター WordCamp Kansai 2024 当日スタッフ WordCamp Kansai 2025 実行委員 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 4

Slide 4 text

2025/11/02 WordCamp Kansai 2025 ほんだとしゆき 「こんな経験、ありませんか?」

Slide 5

Slide 5 text

よくある現場の悩み 前任者が作ったWordPressサイト、仕組みが謎 管理画面で編集しても反映されない クライアントから「更新できない」と連絡が... WordPress触れる開発者が社内にいない → 今日は、こんなサイトを救った実例をお話しします 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 6

Slide 6 text

2025/11/02 WordCamp Kansai 2025 ほんだとしゆき 「ある日、制作会社から相談が...」

Slide 7

Slide 7 text

相談内容 「サーチコンソールにindexされないので見てほしい」 「できればブロックエディターが使えるようにしたい」 よくある相談だな... → 調査開始 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 8

Slide 8 text

xmlサイトマップを 確認してみる /furisode-blog/ %e8%87%aa%e5%8b%95%e4%b8%8b%e6%9b%b8%e 3%81%8d-872/ /photo-gallery/ %e8%87%aa%e5%8b%95%e4%b8%8b%e6%9b%b8%e 3%81%8d-479/ /announcement/ %e8%87%aa%e5%8b%95%e4%b8%8b%e6%9b%b8%e 3%81%8d-252/ 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 9

Slide 9 text

デコード後 /furisode-blog/自動下書き-872/ /photo-gallery/自動下書き-479/ /announcement/自動下書き-252/ 投稿タイトルすべてが「自動下書き」  え...全部「自動下書き」!? 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 10

Slide 10 text

2025/11/02 WordCamp Kansai 2025 ほんだとしゆき テーマファイルを見てみる

Slide 11

Slide 11 text

single-announcement.php テーマファイルを見てみる 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 12

Slide 12 text

trait-display.php テーマファイルを見てみる 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 13

Slide 13 text

2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 14

Slide 14 text

 普段見てるWordPressと全然違うやん! 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 15

Slide 15 text

2025/11/02 WordCamp Kansai 2025 ほんだとしゆき 管理画面を見てみる

Slide 16

Slide 16 text

実際の管理画面 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 17

Slide 17 text

実際の管理画面 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 18

Slide 18 text

カスタム投稿タイプで発覚した問題 投稿タイトル → の「title」フィールド アイキャッチ → の「thumbnail」フィールド 本文内容 → の「content」フィールド カテゴリー → の「category」フィールド ACF ACF ACF ACF ※ ACF = Advanced Custom Fields WordPress標準機能が全て カスタムフィールドで再実装されていた! 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 19

Slide 19 text

固定ページで発覚した問題 固定ページのハードコーディング div h1 h1 p p div ; = 会社概要 私たちは... ; get_header get_footer () () < > < > < > class "about-page" 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 20

Slide 20 text

固定ページで発覚した問題 何が問題か HTMLがテーマファイルに直書き the_content() が呼ばれていない ブロックエディターで編集しても無視される でもエディター自体は動く → テーマテンプレートの修正が必要 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 21

Slide 21 text

2025/11/02 WordCamp Kansai 2025 ほんだとしゆき これからお話すること

Slide 22

Slide 22 text

なぜこんなサイトが生まれるのか 何が問題なのか どう解決したのか AIをどう活用したのか これからお話すること 同じような問題を抱える方の参考になれば! 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 23

Slide 23 text

2025/11/02 WordCamp Kansai 2025 ほんだとしゆき 編集できないWordPressサイトとは?

Slide 24

Slide 24 text

編集できないWordPressサイトとは? 定義 固定ページの内容が変更できない 管理画面から内容を変更しても反映されない 表示はできても運用・更新が困難 非開発者には理解できない複雑な構成 結果  運用コスト増加  開発者依存  更新サイクル遅延 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 25

Slide 25 text

現場で多発するレガシー実装の例 ハードコーディング page-{slug}.php に直接HTMLを記述 → 管理画面での編集が不可能 カスタムフィールドの乱用 今回のケースは両方のハイブリッド! 標準機能を使わず全てカスタムフィールド化 → プラグイン連携不可、一貫性喪失 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 26

Slide 26 text

2025/11/02 WordCamp Kansai 2025 ほんだとしゆき  ハードコーディング  ACF再定義  反映不具合 問題の深掘り レガシー実装の本質を掘り下げ、なぜ問題となるのかを
 技術的な視点から検証します。

Slide 27

Slide 27 text

page-{slug}.php の問題 コンテンツをテーマファイルに直書き 内容変更のたびに開発者がファイルを直接編集 標準化されていないアプローチ → 開発者が変わると修正困難(技術的負債) → 運用コストが増大 → WordPressの管理画面から編集できない 何が問題か? 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 28

Slide 28 text

カスタムフィールド乱用の弊害 ページタイトル アイキャッチ カテゴリ 本文  → カスタムフィールド  → カスタムフィールド  → カスタムフィールド  → カスタムフィールド 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 29

Slide 29 text

カスタムフィールド乱用の弊害 全てをカスタムフィールド化 ● 結果 標準WordPress機能が機能しない プラグインとの互換性低下 記事編集の一貫性喪失 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 30

Slide 30 text

具体的な問題:反映されないケース タイトル変更が反映されない 本文コンテンツが無視される アイキャッチ画像の不一致 キャッシュ問題の併発 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 31

Slide 31 text

具体例 問題1:タイトル変更が反映されない get_the_title() ではなく 固定文字列が テンプレートにハードコード 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 32

Slide 32 text

具体例 問題2:本文コンテンツが無視される the_content() を使わず コンテンツが テーマファイルにべた書き 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 33

Slide 33 text

具体例 カスタムフィールドの を参照 標準機能が上書きされている 画像ID 問題3:アイキャッチの不一致 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 34

Slide 34 text

具体的な問題:反映されないケース タイトル変更が反映されない 本文コンテンツが無視される アイキャッチ画像の不一致 キャッシュ問題の併発 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき  これらが複合的に発生 ↓ 運用担当者混乱

Slide 35

Slide 35 text

なぜこのような実装が生まれるのか? 開発体制や納期による妥協 要件定義の曖昧さ、カスタマイズ要求 過去資産の踏襲で技術的負債が積み重なる WordPress 標準仕様の理解不足 WordPress を触れるエンジニアが居ない 「とりあえず動けばいい」 「後で直せばいい」 「前がこうだったから」 「こういうものだと思ってた」 「誰も直せない」 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 36

Slide 36 text

放置した場合の影響 運用面 技術面 ビジネス面 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 37

Slide 37 text

運用面 運用担当者の負担増 サイト管理コスト増大 SEOへの間接的影響 ユーザー体験の悪化 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 38

Slide 38 text

技術面 技術的負債の蓄積 セキュリティ対応の困難化 WordPress本体の更新リスク 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 39

Slide 39 text

ビジネス面 更新スピードの低下 機会損失の拡大 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 40

Slide 40 text

2025/11/02 WordCamp Kansai 2025 ほんだとしゆき  移行戦略  工程  AIの利用 解決アプローチ 問題解決に向けた戦略・工程を 実際にあったケースを元に紹介します。

Slide 41

Slide 41 text

制作会社の要望 サーチコンソールにindexされるようにしたい
 ブロックエディターが使えるようにしたい → SEOプラグイン連携必須 → WordPress標準機能への移行 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 42

Slide 42 text

独自実装されたテーマ 投稿タイトルやアイキャッチ/カテゴリ/本文まで
 カスタムフィールド化
 基本要素がカスタムフィールドで再定義されている 標準WordPress機能が機能していないので、
 SEOプラグインとの連携ができない状態 問題点 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 43

Slide 43 text

A. テーマを丸ごと入れ替え B. 既存テーマを改修 C. 段階的にデータ移行 検討した選択肢 → 選択:Cの段階的データ移行 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 44

Slide 44 text

移行方針の全体像 ゴール設定 カスタムフィールドのデータ
 → WordPress標準機能へ移植 SEOプラグイン連携を実現 ブロックエディターを使用可能に 期間:3ヶ月 体制:1名(+AI活用) 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 45

Slide 45 text

1ヶ月目 現状調査 方針決定 & ├─ Week  コードベースの調査 1 ├─ Week - 依存関係の洗い出し 2 3 └─ Week  移行方針の策定 4 3ヶ月の移行計画 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 46

Slide 46 text

2ヶ月目 段階的移行 テスト & ├─ Week - 優先度の高いページから移行開始 5 6 ├─ Week  データ移行プラグインの開発 7 └─ Week  テスト環境での検証 8 3ヶ月の移行計画 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 47

Slide 47 text

3ヶ月目 最終調整 運用移行 & ├─ Week - : 残りのページの移行 9 10 ├─ Week :   運用者向けトレーニング 11 └─ Week :  本番環境への適用 監視 12 & 3ヶ月の移行計画 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 48

Slide 48 text

テーマ依存を解消 Step 1:カスタム投稿タイプの独立 問題:テーマで register_post_type  → テーマ変更時に投稿が消える 解決:独立プラグイン化 テーマの register_post_type をオフ 専用プラグインで登録 メリット テーマ変更に強い 再利用可能 管理が容易 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 49

Slide 49 text

稼働中のサイトなのでローカルで作業している間にも 新しい記事がどんどん投稿される 記事を保存すると自動的にWordPress標準に移植する仕組み save_post フックで自動移植 Step 2:データを自動的に移植する 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 50

Slide 50 text

カスタムフィールドの タイトルを 通常のタイトルに保存 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 51

Slide 51 text

カスタムフィールドのサムネイル画像を アイキャッチ画像に保存 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 52

Slide 52 text

Step 3:一括移植プラグイン 既存記事を一括移植できるプラグインを作成する。 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 53

Slide 53 text

記事一覧の一括操作で チェックを入れた記事を 一括移植するプラグイン 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 54

Slide 54 text

ブロックエディターの内容が表示されるように テーマのテンプレートファイルに the_content(); を追加 Step 4:テンプレートファイルの修正 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 55

Slide 55 text

ACF (Advanced Custom Fields) の設定を変更 Step 5:ブロックエディターを表示 変更前 変更後 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 56

Slide 56 text

ACFの設定を変更 変更前: 変更後: ※ ACF = Advanced Custom Fields 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 57

Slide 57 text

非公開の固定ページ を用意 フロント側 のコンテンツを の編集画面にコピペ レイアウト調整 すべてのコンテンツをコピーして の編集画面に貼り付け page-(B).php を削除 (A) (B) (A) (B) Step 6:固定ページを再構築 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 58

Slide 58 text

2025/11/02 WordCamp Kansai 2025 ほんだとしゆき AI活用による効率化 どのようにAIを活用したのかを紹介します。

Slide 59

Slide 59 text

Visual Sutudio Code GitHub Copilot (Agentモード) WPCS (WordPress Coding Standards) AI活用による効率化 使用ツール 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 60

Slide 60 text

GitHub Copilot 活用のコツ モードの使い分け Agent : 複数ファイルの一括修正など Edit :部分的な修正 Ask : 質問・相談 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 61

Slide 61 text

Agent モードで、いきなりコードの編集をさせたくない時は 「○○したいので、作業計画を立てて」 「MDファイルにまとめて」 「作業計画に沿ってコードを書いて」 作業計画を提示されたら その後 GitHub Copilot を使用する時の工夫 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 62

Slide 62 text

ポイント いきなりコード書かせない 計画を先に立てさせる 一気にやらせない 人間がレビュー GitHub Copilot を使用する時の工夫 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 63

Slide 63 text

2025/11/02 WordCamp Kansai 2025 ほんだとしゆき AIで実装している時の様子 時間があれば、GitHub Copilot の動画を流します。

Slide 64

Slide 64 text

2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 65

Slide 65 text

2025/11/02 WordCamp Kansai 2025 ほんだとしゆき まとめ

Slide 66

Slide 66 text

理由は分かるけれど... 開発体制や納期による妥協 要件定義の曖昧さ、カスタマイズ要求 過去資産の踏襲で技術的負債が積み重なる WordPress 標準仕様の理解不足 WordPress を触れるエンジニアが居ない 「とりあえず動けばいい」 「後で直せばいい」 「前がこうだったから」 「こういうものだと思ってた」 「誰も直せない」 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 67

Slide 67 text

理由は分かるけれど... 開発体制や納期による妥協 要件定義の曖昧さ、カスタマイズ要求 過去資産の踏襲で技術的負債が積み重なる WordPress 標準仕様の理解不足 WordPress を触れるエンジニアが居ない 「とりあえず動けばいい」 「後で直せばいい」 「前がこうだったから」 「こういうものだと思ってた」 「誰も直せない」 後で、絶対誰かが苦労します! こうならないように、予防しておくのが最善 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 68

Slide 68 text

今日お伝えしたこと 編集できないWordPressサイトについて
 → 現場で多発している問題 レガシー実装には理由がある
 → 責めるのではなく理解しよう 段階的移行で解決する
 → リスクを抑えて確実に AIは強力な味方
 → でも人間の判断が重要 予防が最善策
 → 標準機能を優先する設計を 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 69

Slide 69 text

2025/11/02 WordCamp Kansai 2025 ほんだとしゆき 最後に

Slide 70

Slide 70 text

WordPress の Mission 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき

Slide 71

Slide 71 text

2025/11/02 WordCamp Kansai 2025 ほんだとしゆき 困っている人の 参考になれば幸いです 質問・ご相談はお気軽に @RocketMartue ご清聴ありがとうございました!

Slide 72

Slide 72 text

Thanks! 2025/11/02 WordCamp Kansai 2025 ほんだとしゆき