YUKI Multilingual Next バージョン履歴報告(2026-05-15)
本記事は、YUKI Multilingual Next の開発経緯、各バージョンの目的、事故・修正・到達点を整理した履歴報告です。前記事の重大失敗報告とあわせて、今後の開発判断と再発防止に使います。
1. 現在の整理
- ローカル実装上の最新ソース:
0.6.12-public-status-and-output-guard - 確認済みアップロード用ZIPとして残っている最新候補:
0.6.11-all-language-polylang-replacement-core 0.6.12はソース上の開発状態として扱い、配布ZIPは package gate 通過まで渡さない。- 本プラグインの方向性は、Polylang と併用する翻訳補助から、Polylang を安全に置き換えるための多言語コアへ移行中。
2. バージョン履歴
| Version | 日付 | 主目的 | 状態・反省点 |
|---|---|---|---|
0.1.0 |
2026-05-13 | 初期開発版。Polylang 不在時の pll_* 互換、言語・翻訳タクソノミー、管理設定、翻訳ドラフトREST、Directory Core連携を追加。 |
実験段階。設計範囲が広く、配布安全性の検証が不足していた。 |
0.1.1 |
2026-05-13 | 投稿編集画面に翻訳ドラフト作成メタボックスを追加。 | 本番系で重大エラーにつながり、安全版への巻き戻しが必要になった。 |
0.1.2-safe |
2026-05-13 | 緊急復旧版。v0.1.0相当へ戻し、v0.1.1の投稿メタボックスを除去。重複クラス対策を追加。 | 復旧用。以後、配布安全性を軽く見ない前提が必要になった。 |
0.2.0-core |
2026-05-13 | モジュール型コアとして再構築。Polylang有効時は橋渡し、Polylang不在時はYUKIデータで互換関数を提供する設計へ。 | 公開ルーティング・公開クエリはまだ触らないローカル/ステージング前提。 |
0.2.1-admin-candidates |
2026-05-13 | 欠落翻訳候補の管理画面スキャンと、最大20件の翻訳ドラフト作成を追加。 | 翻訳作成補助。公開ルーティングには未対応。 |
0.2.2-admin-post-ui |
2026-05-13 | 投稿編集画面の言語メタボックスと投稿一覧の言語・翻訳状態カラムを追加。 | Polylangブリッジ時は読み取り寄り。公開面は未対応。 |
0.2.3-admin-settings |
2026-05-13 | 言語行、既定言語、投稿タイプ、タクソノミー、URLモード、公開クエリフィルタ設定を管理画面化。 | YUKIネイティブ移行準備。Polylang設定は上書きしない。 |
0.2.4-strings-admin |
2026-05-13 | 登録文字列の翻訳管理UIを追加。 | 将来のテーマ・外部プラグイン文字列対応の土台。ただし当時はまだ限定的。 |
0.2.5-frontend-links |
2026-05-13 | 言語切替ショートコードと任意の hreflang 出力を追加。 | rewrite rules や public query filter は未実装。リンク補助段階。 |
0.2.6-migration-report |
2026-05-13 | Polylangデータの読み取り専用移行レポートを追加。 | 書き込みなし。移行前診断としては有効だが、公開代替には未到達。 |
0.2.7-provider-layer |
2026-05-13 | 翻訳プロバイダ抽象化を追加。copy/mockのローカルプロバイダを保持。 | 外部APIや認証情報を扱わない安全設計。まだローカル/ステージング前提。 |
0.3.0-upload-candidate |
2026-05-13 | 初のアップロード候補。Self Test を追加。 | ZIP内パス問題により重大配布事故につながった。以後、package gate必須。 |
0.3.1-wpzip |
2026-05-13 | WordPress/Linux互換のZIPエントリパスへ再梱包。 | 正常版として残す対象。ZIP作成成功ではなく、gate通過を根拠にする必要がある。 |
0.3.2-candidate-diagnostics |
2026-05-13 | 候補0件問題に対し、スキャン件数、skip理由、サンプル行診断を追加。 | 候補0件の理由を画面で追えるようにした。 |
0.4.0-native-migration-core |
2026-05-13 | Polylangの言語・翻訳関係をYUKIネイティブメタへコピーする移行準備を追加。 | Polylang無効化や削除はしない。移行準備段階。 |
0.4.1-native-migration-scan-fix |
2026-05-13 | 移行スキャンを複数経路に拡張し、管理画面の現在言語だけを拾う問題を防止。 | Dry Runの件数信頼性を改善。 |
0.4.2-pre-disable-check |
2026-05-13 | Polylang無効化前のYUKIネイティブメタ確認を追加。 | まだ無効化操作は含まない。 |
0.4.3-pre-disable-full-scan-check |
2026-05-13 | Pre-Disableチェックを全件寄りスキャンに修正し、1件だけの誤判定を防止。 | Polylang停止前の最低限の安全診断が強化された。 |
0.5.0-native-url-router |
2026-05-13 | Polylang無効化後に /ja/ と /en/ の言語ホーム rewrite rules を入れる Native URL Router を追加。 |
Polylang有効中は拒否。削除や公開クエリ変更はしない。 |
0.5.1-secondary-query-filter |
2026-05-15 | サイドバーなど副次クエリも現在言語で絞る。REST編集用の言語メタ登録も追加。 | 英語ページに日本語新着が混ざる問題へ対応。 |
0.5.2-rest-safe-secondary-query-filter |
2026-05-15 | REST/Ajax/cronを公開言語フィルタ対象から除外。 | 支社投稿ツールやREST投稿更新が壊れないようにした。 |
0.5.3-native-prefixed-permalinks |
2026-05-15 | 投稿・固定ページの言語接頭URLと canonical permalink 出力を追加。 | 未接頭URLから言語接頭URLへの誘導を開始。 |
0.5.4-term-widget-language-filter |
2026-05-15 | カテゴリ・タグなどターム系ウィジェットを現在言語で絞る。 | 英語ページのサイドバーに日本語カテゴリが出る問題へ対応。 |
0.5.5-native-archive-link-guard |
2026-05-15 | 言語接頭付きカテゴリ・タグアーカイブとリンク出力を追加。 | /fx/ など未接頭カテゴリURLを既定言語側へ寄せる方向に進めた。 |
0.5.6-native-archive-pagination-guard |
2026-05-15 | カテゴリ・タグのページ送り /page/2/ 以降に対応。 |
/ja/prop-firm/page/2/ など404問題への対応。 |
0.6.0-native-full-coverage |
2026-05-15 | 月別、投稿者、feed、検索、OGP、canonical、固定リンク、メニュー、ウィジェット診断を含む Native Full Coverage Check を追加。 | Polylang代替の公開URL全面担当へ進んだが、まだ不安定箇所が残った。 |
0.6.1-native-rule-order-fix |
2026-05-15 | feed、投稿者、日付アーカイブが汎用ルートより先に解決されるよう rewrite order を修正。 | ルール順序起因の404/誤解決を抑制。 |
0.6.2-native-feed-renderer |
2026-05-15 | /LANG/feed/ のネイティブRSSレンダラーを追加。 |
テーマやWordPress標準feed経路への依存を減らした。 |
0.6.3-feed-early-catch |
2026-05-15 | /LANG/feed/ と comments feed を parse_request で早期捕捉。 |
feed 500エラー対策。 |
0.6.4-fixed-link-coverage |
2026-05-15 | 非既定言語ビューで未解決の既定言語リンクを除去し、Cocoon/サイドバーラベルやプロフィール文を英語化。 | 固定リンク・テーマオプションの混在警告を減らした。 |
0.6.5-nondefault-creative-guard |
2026-05-15 | 非既定言語の広告・アフィリエイト・Cocoon系コンテナをCSSで隠すガードを追加。 | 月別表示ラベルの文字化けにも対応。ただし設計はまだ英語寄りだった。 |
0.6.6-third-party-output-guard |
2026-05-15 | Ads by datafeedr、Cocoonランキング/おすすめ、関連記事、前後記事、二次クエリの言語混在をガード。 | nested HTML除去が危険で、サイドバー崩れを起こした。大きな反省点。 |
0.6.7-layout-safe-output-guard |
2026-05-15 | 第三者出力ガードをレイアウト安全寄りに修正。ネストしたCocoonランキングdivを直接削りすぎないようにした。 | v0.6.6のレイアウト破壊対策。 |
0.6.8-english-theme-label-guard |
2026-05-15 | 英語ビューで Home、Copy、Hatena、Follow、Customize、New、Edit Post、Admin Menu などを英語化。 | この時点では英語個別修正へ寄りすぎた。 |
0.6.9-english-html-label-guard |
2026-05-15 | feedリンクtitle、author title、SNS aria、PR表記、Cocoon属性の英語化を拡張。 | まだ英語向け個別置換の延長で、全言語設計としては弱い。 |
0.6.10-english-residual-label-guard |
2026-05-15 | Cocoon目次、コピーガード通知など英語ビューの残存ラベルを追加置換。 | 英語個別パッチの限界が明確になった。 |
0.6.11-all-language-polylang-replacement-core |
2026-05-15 | 英語専用置換をやめ、外部出力文字列をYUKI文字列として登録し、現在言語に応じて最終HTMLへ反映する全言語レイヤーへ移行。 | 追加言語はPHP修正ではなく、未翻訳診断と辞書登録で対応する方向へ修正。 |
0.6.12-public-status-and-output-guard |
2026-05-15 | 公開ルートのステータス補正、最終HTMLフィルタの開始条件強化、request pathからの言語判定フォールバック、未翻訳広告/ランキング/クリエイティブの非既定言語非表示を追加。 | ソース上の最新開発状態。配布ZIPは package gate 通過まで渡さない。 |
3. 事故と学び
0.3.0でZIP配布事故を起こしたため、以後は package gate 通過が配布条件。0.6.6で第三者出力を危険なHTML除去で扱い、Cocoonレイアウト崩れを招いた。0.6.8から0.6.10で英語個別パッチへ寄りすぎ、Polylang代替として必要な全言語設計から逸れた。0.6.11以降は、外部出力文字列を全言語対応の登録・診断・置換レイヤーで扱う方向に戻した。- 公開URL、RSS、OGP、canonical、hreflang、ウィジェット、関連記事、広告、ランキングの検査はCODE側が先に実行する。
4. 今後の工程方針
- すべての設定済み言語で、トップ、投稿、固定ページ、カテゴリ、タグ、月別、投稿者、検索、feed、ページ送りを検査する。
- 外部プラグイン出力、テーマ出力、関連記事、前後記事、サイドバー、ウィジェットを現在言語で検査する。
- 追加言語が入った場合は、PHP個別修正ではなく、言語レジストリ、文字列辞書、外部出力辞書、診断レポートで対応する。
- ZIPを渡す前に package gate を通し、
PASS: No backslash paths inside ZIP.、PASS: Main plugin file exists、PASS: WP plugin zip package gate passed.を必須条件にする。 - 依頼者に頼むのは、管理画面ログイン状態でしかできない操作とSelf Test確認だけに限定する。
この履歴は、単なるリリースノートではありません。CODE-YUKI がどこで誤り、どこで設計を戻し、次に何を守るべきかを示すための記録です。
5. 追記: v0.6.13〜v0.6.29 バージョンアップ内容と公開QA結果
本追記により、この記事内の「現在の整理」は 0.6.29-hreflang-code-normalization まで更新します。v0.6.12以降は、Polylang無効化後の公開面をYUKI側で受け持つため、公開URL、HTML、RSS、OGP、canonical、hreflang、ウィジェット、言語スイッチャー、未知言語404を実HTMLで確認しながら修正しました。
5.1 追加バージョン履歴
| Version | 主な変更 | 検証・反省点 |
|---|---|---|
0.6.13-public-runtime-guard |
frontend runtimeを新しいクラスファイル経路で読み込み、公開ルートのステータス、html lang、locale、最終HTMLガードを強化。 |
古いopcode/runtime状態や一部HTMLガード失敗で公開ページ全体が崩れるリスクを下げた。 |
0.6.14-public-language-residual-guard |
非デフォルト言語で、未翻訳のプロフィール・サイト説明が既定言語のまま出る問題を抑制。未準備翻訳URLは既定言語に代替せず404へ。 | 「他言語ページがない場合は表示しない」方針へ寄せた。 |
0.6.15-public-hreflang-residual-guard |
同一サイトURL書き換え後にhreflangを再構築し、alternateが現在言語URLに潰れる問題を抑制。 | 言語ごとの代替URLは最終HTML書き換えから保護が必要だと判明。 |
0.6.16-polylang-all-language-fail-closed |
Polylang登録済み全言語をslug、locale、name、home URL、デフォルト状態込みで取り込み。英語専用fallbackをやめ、未準備言語では既定言語出力を抑制。 | Polylangが持つ全言語を前提にしたfail-closed設計へ修正。 |
0.6.17-polylang-disable-check-filter-safe |
public_query_filter_enabledを停止理由から外し、guarded filter 経路を前提にPolylang無効化後の診断を整理。 |
診断表示が実運用状態を誤って止めないようにした。 |
0.6.18-public-qa-locale-and-404-hreflang-guard |
404ページではhreflangを出さず、stored localeをOGP向けに正規化。 | 404ページを他言語同等ページとして検索エンジンへ示さないようにした。 |
0.6.19-native-readiness-labels-and-rollout-diagnostics |
診断文言を「Polylang disable test」から native readiness / post-Polylang-disabled rollout 前提に整理。 | Polylangはすでに無効化済みという実態に合わせた。 |
0.6.20-sidebar-author-description-source-language-guard |
sidebar operator profileやauthor descriptionに残る既定言語説明を、翻訳辞書経由で置換または非表示にするガードを追加。 | 画像で確認された英語ページ内の日本語プロフィール混入を修正。 |
0.6.21-all-target-language-sidebar-source-guard |
sidebar author description guardを英語専用ではなく、すべての非デフォルト対象言語へ拡張。 | 将来の追加言語でも同じ混入を起こさない設計へ寄せた。 |
0.6.22-empty-native-pagination-404-guard |
/en/page/2/ のような空の言語別ページ送りを404にし、空ページを200化しないようにした。 |
存在しないページ送りを公開ページとして見せない方針を固定。 |
0.6.23-widget-language-and-post-quick-link |
ウィジェットごとの表示言語チェックボックス、ランキング・広告ウィジェットの言語一致マーク、投稿編集画面の欠落言語 + クイックリンクを追加。 |
ランキングや広告を言語ごとに出し分ける準備と、記事間連結作業を簡単にする導線を追加。 |
0.6.24-static-home-link-language-context-guard |
ロゴ、サイト名、ホームリンク、フォームaction、data URL属性を現在言語ホームへ書き換え。 | 英語ページのタイトルロゴクリックで /ja/ へ戻る不具合を修正。 |
0.6.25-404-meta-and-static-url-context-guard |
native language 404でも twitter:url と静的404メタURLを現在リクエストURLへ合わせるよう補正。 |
404画面のメタ情報が既定言語・静的URLへ戻る問題を抑制。 |
0.6.26-unknown-language-prefix-404-isolation-guard |
/fr/ など未設定の言語風prefixを中立noindex 404へ隔離。 |
未設定言語prefixが既定言語テーマページ・メニュー・ウィジェットへ落ちる問題を防止。 |
0.6.27-default-url-and-language-switcher-widget |
Polylang互換のデフォルト言語設定、デフォルト言語URL prefix非表示設定の適用範囲を拡張。YUKI Language Switcherウィジェットを追加。 |
連携記事・連携タームがない場合、既定では言語スイッチャーを表示しないfail-closed挙動を追加。 |
0.6.28-language-switcher-alternate-url-preserve |
最終HTMLの同一サイトURL書き換え中、言語スイッチャー内のalternate URLを保護。 | v0.6.27公開QAで、JAリンクが現在言語URLへ潰れる不具合をCODE側で検出し修正。 |
0.6.29-hreflang-code-normalization |
en_US / ja_JP などのstored localeを、HTML hreflang向けに en-US / ja-JP へ正規化。 |
v0.6.28公開QAで検出したhreflang形式の残りを修正し、公開QA PASSに到達。 |
5.2 v0.6.29 公開QA結果
- 確認バージョン:
0.6.29-hreflang-code-normalization - 英語ページの可視日本語文字数:
0 - 古いhreflang形式
en_US/ja_JP残り:0 - hreflangは
ja-JP/en-US/x-defaultで出力。 - 英語ページのロゴ、サイト名、ホームボタンは
https://invest358.com/en/を指す。 - 言語スイッチャーは、英語記事から対応する日本語記事URL、英語URLを正しく出し分け。
- スイッチャーとhreflangを除いた、英語ページ上の
/ja/リンク漏れ:0 - canonical、OGP URL、Twitter URLは現在の英語URLへ一致。
/fr/、/fr/contact-us/、/es/は中立404。既定言語のサイドバーやウィジェットは漏れない。/en/feed/はlanguage=en-us、英語記事リンクのみ。/feed/と/ja/feed/はlanguage=ja-jp。
5.3 現時点の判断
Invest358.com の公開URL検査範囲では、v0.6.29をPolylang代替コアの次工程へ進められる状態と判断します。ただし、言語スイッチャーウィジェットの実配置や追加言語投入時の翻訳辞書整備は、今後も管理画面操作・公開URL検査・Native Full Coverage Checkを組み合わせて確認します。
今回も、公開URL確認はCODE-YUKI側で実施しました。依頼者に求めた作業は、ZIPアップロード・有効化・Self Test値共有という管理画面ログイン状態でしか確認できない範囲に限定しました。