Skip to content

tomotech1/Saigai-wp

Repository files navigation

VTuber WP

VTuberに特化したディレクトリ+pSEO記事量産型WordPressサイト。

  • ディレクトリ: カスタム投稿タイプ(vtubers / vtuber_groups)でVtuber情報を管理
  • pSEO記事: 通常投稿(posts)でreview / comparison / howto記事を量産
  • 自動投稿: n8n + Gemini Flash 2.5 でGoogle Sheetsからコンテンツを自動生成

環境情報

項目
ローカルURL http://localhost:10004
管理画面 http://localhost:10004/wp-admin/
SEOPress設定 http://localhost:10004/wp-admin/admin.php?page=seopress-option
n8n https://n8n.appexx.me
Google Sheets 設定シート
GitHubリポジトリ https://github.com/tomotech1/vtuber-wp

技術スタック

  • WordPress: PHP 8.2(LocalWP)
  • テーマ: Bricks Builder + NextBricks
  • SEO: SEOPress Pro
  • CSS: TailwindCSS v3 + DaisyUI v4
  • 自動投稿: n8n(Hetzner自己ホスト)+ Gemini Flash 2.5
  • 設定管理: Google Sheets(.envは使用しない)

初回セットアップ

# 1. LocalWP を起動してから実行
bash scripts/setup.sh

このスクリプトが以下を自動実行します:

  • wp-cli.phar のダウンロード
  • theme/functions.phpapp/public/wp-content/mu-plugins/vtuber-cpt.php にコピー
  • パーマリンク設定(投稿名形式)
  • CPT・タクソノミー登録確認
  • npm install + TailwindCSS ビルド

WP CLI コマンド集

# WP CLI エイリアス設定(Bashに追記推奨)
PHP_BIN="C:/Users/apple/AppData/Roaming/Local/lightning-services/php-8.2.29+0/bin/win64/php.exe"
WP_PATH="C:/Users/apple/Local Sites/vtuber-wp/app/public"
alias wp="$PHP_BIN wp-cli.phar --path='$WP_PATH' --url=http://localhost:10004 --allow-root"

# ---- 確認系 ----
wp plugin list                          # プラグイン一覧
wp theme list                           # テーマ一覧
wp post-type list                       # 投稿タイプ一覧
wp taxonomy list                        # タクソノミー一覧

# ---- CPT操作 ----
wp post create --post_type=vtubers --post_title="テストVtuber" --post_status=draft
wp post list --post_type=vtubers --fields=ID,post_title,post_status
wp post list --post_type=vtuber_groups --fields=ID,post_title,post_status

# ---- メタフィールド ----
wp post meta get <POST_ID> vt_subscribers_yt
wp post meta update <POST_ID> vt_subscribers_yt 100000
wp post meta update <POST_ID> vt_is_retired false

# ---- タクソノミー ----
wp term list vtuber_genre
wp term list vtuber_game
wp term list vtuber_group_tax
wp term create vtuber_genre "ゲーム実況" --slug=gaming
wp term create vtuber_game "Minecraft" --slug=minecraft

# ---- メンテナンス ----
wp rewrite flush --hard                 # パーマリンクフラッシュ
wp cache flush                          # キャッシュクリア
wp db optimize                          # DB最適化

# ---- REST API確認 ----
wp eval 'echo get_option("permalink_structure");'

REST API エンドポイント

エンドポイント メソッド 説明
/wp-json/wp/v2/vtubers GET Vtubers一覧取得
/wp-json/wp/v2/vtubers/{id} GET Vtuber詳細取得
/wp-json/wp/v2/vtubers POST Vtuber投稿作成
/wp-json/wp/v2/vtubers/{id} PATCH Vtuber更新
/wp-json/wp/v2/vtuber_groups GET グループ一覧
/wp-json/wp/v2/posts POST pSEO記事作成
/wp-json/wp/v2/genre GET ジャンル一覧
/wp-json/wp/v2/games GET ゲームタグ一覧

認証方法(Application Password)

# Basic認証でアクセス(n8nでも同様に設定)
curl -u "admin:xxxx xxxx xxxx xxxx xxxx xxxx" \
  -X POST http://localhost:10004/wp-json/wp/v2/vtubers \
  -H "Content-Type: application/json" \
  -d '{"title": "テスト", "status": "draft", "meta": {"vt_subscribers_yt": 10000}}'

TailwindCSS ビルド

npm install              # 初回のみ
npm run build            # 本番ビルド → assets/css/output.css
npm run watch            # 開発時ウォッチ
npm run lint             # ESLint

assets/css/output.css を Bricks Builder の「カスタムCSS」設定で読み込む。


n8n ワークフロー

ファイル 説明 スケジュール
wf01-directory-post.json Vtubers CPT自動投稿 毎日9:00
wf02-article-post.json pSEO記事自動生成・投稿 毎日10:00
wf03-yt-update.json YouTube登録者数更新(TODO) 毎日3:00

ワークフロー インポート手順

  1. n8n にログイン
  2. 「Import from file」 → n8n-workflows/wf0X-XXX.json を選択
  3. 認証情報(Credentials)を設定:
    • Google Sheets OAuth2
    • WordPress Application Password
    • Google AI Studio(Gemini API)

Google Sheets 設定

スプレッドシートID: 1WwyRbzS7XfVqcaH6Ipe2JFqMtD-X1c5NKXJViaZAtvM

vtubers シート(必須列)

列名 説明
status 処理状態 pending / published
slug URLスラッグ kizuna-ai
vt_name_jp 日本語名 キズナアイ
vt_name_en 英語名 Kizuna AI
vt_debut_date デビュー日 2016-11-29
vt_subscribers_yt 登録者数 3000000
vt_sns_youtube YouTubeURL https://www.youtube.com/...
genres ジャンル(カンマ区切り) ゲーム実況,雑談
group_name 所属グループ (なし)

articles シート(必須列)

列名 説明
status 処理状態 pending / published
article_type 記事タイプ review / comparison / howto
target_name 対象VTuber名 にじさんじ
target_keywords ターゲットKW にじさんじ おすすめ
slug URLスラッグ nijisanji-review
compare_name 比較対象(comparisonのみ) ホロライブ
theme テーマ(howtoのみ) Minecraft実況

ディレクトリ構成

vtuber-wp/
├── .ai/                  AIコンテキスト・タスク管理
│   ├── context.md        サイト設計・URL構造・収益モデル
│   ├── tasks.md          実装タスクチェックリスト
│   └── decisions.md      技術選定の意思決定ログ
├── .claude/
│   └── settings.json     Claude Code設定
├── assets/
│   └── css/
│       ├── tailwind.css  TailwindCSSエントリーポイント
│       └── output.css    ビルド成果物(.gitignore済み)
├── docs/
│   ├── architecture.md   ハイブリッドpSEO構成の全体設計
│   └── bricks-templates.md  Bricksテンプレート設計
├── n8n-workflows/
│   ├── wf01-directory-post.json  ディレクトリ投稿
│   ├── wf02-article-post.json    記事生成・投稿
│   └── wf03-yt-update.json       YouTube更新(スケルトン)
├── scripts/
│   ├── setup.sh          初回セットアップ
│   └── test-rest-api.sh  REST API疎通確認
├── seopress/
│   └── title-templates.md  SEOPressタイトルテンプレート
├── theme/
│   └── functions.php     CPT・メタ定義(mu-pluginsにコピーして使用)
├── app/public/           WordPress本体(.gitignore済み)
├── .env.example          環境変数テンプレート
├── .gitignore
├── CLAUDE.md             Claude Code起動時コンテキスト
├── README.md
├── package.json
└── tailwind.config.js

コーディング規約

  • PHPコメント: 日本語
  • WordPress コーディング標準準拠
  • コミットメッセージ: 日本語OK・prefix付き
    • feat: 新機能
    • fix: バグ修正
    • docs: ドキュメント
    • chore: 設定・ビルド

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors