コンテンツにスキップ
Zenn Dev Tsumugiiori Articles E13d08114f5d20

WEB制作を学んで「畳んだ」会社員が、Claude Codeに丸投げして「同人サイトの裏ページ」をWordPressで実装した話

  • URL: https://zenn.dev/tsumugiiori/articles/e13d08114f5d20
  • 日付: 2026-06-24
  • Tier: Tier 3
  • 要旨: 超文系事務職が数年前に WEB 制作スクール(WordPress 実装まで)を完走したあと、実装は向いていないと判断して道を畳んだ。その後、個人創作サイト(小説・イラスト・日記)を建てたくなり、実装を Claude Code にほぼ丸投げ。WordPress(Arkhe 親テーマ+子テーマ)で 3 種類のカスタム投稿タイプ・タクソノミー・テンプレート 15 本・functions.php 2000 行・独自プラグイン 4 本を 20+ セッションで実装。著者の役割は要件の具体化(「古の同人サイトの裏ページ」のような文化的背景を伝える)と動作確認・具体的な指摘のみ。丸投げに必要なのはコーディング力ではなく、要件を言い続ける根気だと記述している。

詳細

WordPress カスタム投稿タイプ・タクソノミー・プラグイン実装の記録。設計軸は「投稿の種類(writings/visuals/journal)」と「見せ方(series/kind)」の分離。裏ページ(非公開セクション)実装は「会員制にせず、入口を知る人だけが入れるソフトゲート」を要件として、kind タクソノミーに restricted フラグを立てて論理分離し、3 層で漏洩を防ぐ構成:防御① pre_get_posts で フロントエンド全 WP_Query に kind NOT IN (‘restricted’) を自動付与(公開側一覧・アーカイブ・検索・RSS から構造的に除外)、防御② 月別アーカイブなど直接 SQL は除外サブクエリで手動除外、防御③ REST API 単体取得(/wp/v2/{type}/{id})は rest_pre_dispatch で該当ルート検出・kind=restricted なら 404 返却。独自プラグイン 4 本は OGP 管理・画像 WebP 自動変換・動画サムネイル生成・ローカル→本番差分同期デプロイ(ハッシュ比較判定・REST API + アプリケーションパスワード認証で反映)。サイドバー系の重い集計は Transient キャッシュで 12 時間保持・投稿保存時に自動フラッシュ。著者は TOP ページ組み立てと Instagram 連携プラグイン導入(サイトの顔)のみ担当。スクール時代の PHP 知識は「AIの説明を追う」には足りたが「コードを書く」には足りず、丸投げの鍵は要件を言い続ける根気だったと総括。