WordPress WP-Cron を時計として信じるのをやめた|予約投稿を「ズレ・重複・取りこぼし前提」で組み直した設計 WordPress の予約投稿を WP-Cron の正確さに頼らず、結果整合で組み直した設計の記録です。状態を持つ自前ジョブテーブルと条件付き更新で二重投稿を防ぎ、五分ごとの見回りで固まりと取りこぼしを回収します。プラグインでは解けない無アクセスの限界まで、正直に書きました。 2026.06.23 WordPress
Web Development Qiita には画像アップロードの API が無かった|予約投稿プラグインで詰まって、URL 埋め込みに切り替えた話 WordPress から Qiita へ予約投稿するプラグインを自作中、画像を Qiita へ送ろうとして API が見つからず詰まりました。公開 API に画像アップロードの口はありません。WordPress メディアや Cloudflare R2 の URL を本文へ埋め込む方式へ切り替えた検証メモです。 2026.06.19 Web Development
AI 施策が効いたのか、効かなかったのかが分からない|有効インストール10未満のプラグインで、計測の前提を間違えた話 OpenRouter の無料キー導線で AI チャットボットの初回の壁を下げましたが、有効インストールは10未満のまま動きません。効かなかったのではなく、効果を語れる母数も、どこで離脱したかを知る計測も持っていませんでした。個人開発の計測設計を実体験で書きます。 2026.06.15 AI
AI AI の返答を画面に出すとき、エスケープだけでは守れなかった話|DOM を直接組んで安全に表示する AI チャットボットで、LLM の出力をエスケープしたのに画面表示ですり抜けた経験を残します。AI の出力はユーザー入力と同じ外部入力です。innerHTML の二度パースという落とし穴と、DOM を直接組んで安全に描画する WordPress での直し方をまとめます。 2026.06.13 AI
WordPress プラグインが 24 時間反映されない?WordPress.org の配信保留が全プラグインに広がっていました SVN にコミットしたプラグインが 24 時間配信されない原因は、2026 年 6 月 5 日に WordPress.org が全プラグインへ広げた配信保留です。仕様変更の経緯と、急ぐときに zip を手動アップロードして上書きする手順をまとめました。 2026.06.11 WordPress
AI ユーザーの API キーをどこに預かるか問題|WordPress プラグインで AES-256-GCM を使った話 自作 WordPress プラグインで、ユーザーの API キーを平文で持たず AES-256-GCM で暗号化保存した実装記録です。鍵は wp-config の salts から派生させて DB の外に置き、AAD でサイトに束縛。IV と認証タグのレイアウト、復号の段階フォールバック、salts 変更時の再入力動線まで、実コードで残します。 2026.06.11 AI
AI AI チャットボットを4社対応にした話|OpenAI・Claude・Gemini・OpenRouter の差を1枚の層で吸収した設計 自作 WordPress プラグインの AI チャットボットを OpenAI・Claude・Gemini・OpenRouter の4社対応にした設計記録です。認証・system の置き場所・レスポンス形・エラーを1枚の層に畳み、GPT-5 が temperature を弾く 400 を予防スキップと自動リトライで吸収した実装まで残します。 2026.06.10 AI
AI Brainfuck のベンチで AI が満点を取った、けれど「8 8」で正体が割れた話|EsoLang-Bench を Codex CLI で再現して見た、カンニングと本物の境目 難解言語ベンチ EsoLang-Bench を Codex CLI(gpt-5.5)で再現し、Brainfuck の Easy を3条件で測りました。答えを見せると満点でも未知入力「8 8」で空を返すカンニング、答えを隠しても満点だが本物、Medium は全条件0%。同じ100%の中身が正反対だった記録です。 2026.06.09 AI
WordPress target=”_blank” のタブナビング攻撃と rel=”noopener” の現実解【WordPress 運用視点・2026年版】 target="_blank" のタブナビング攻撃と rel="noopener" の使い分けを、WordPress 運用視点で整理しました。暗黙 noopener 時代の判断基準、WP 5.6 以降の自動付与の変遷、既存記事の一括修正と運用で踏んだ穴まで実環境ベースで解説します。 2026.05.29 WordPress
WordPress WP AI Clientへ移行したら、エラーも出さずに会話の履歴が消えた WordPress 7.0のWP AI Clientへプラグインを移行した実装記録です。with_history()に生配列を渡すと例外も出さず会話履歴だけが消える挙動、キーを持たないプロバイダが踏み抜いた前提、temperatureの400対応を、RC3と安定版で確認したコード付きで書いています。 2026.05.28 WordPress