=== Legacy View Switcher ===
Contributors: wpmm
Tags: retro, legacy, frameset, vintage, view
Requires at least: 5.0
Tested up to: 6.8
Requires PHP: 7.4
Stable tag: 1.0.5
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

URL に ?legacy=1 を付けるだけで、今運用しているサイトを90年代風の「レガシー表示」に切り替えます。

== Description ==

このプラグインは、既存のWordPressサイトを壊さずに「レガシー表示（レトロ表示）」を追加します。

本プラグインは特定の個人、団体、あるいは既存の特定のウェブサイトを模倣することを推奨するものではありません。あくまでWeb技術の歴史的再現を目的としたジョーク／学習用ツールです。

= 基本的な使い方 =

* `?legacy=1` を付けるとレガシー表示
* `?legacy=0` を付けると通常表示に戻る

レガシー表示は、テーマを置き換えるのではなく「表示専用テンプレート」で描画します。見た目はあえて古いWebっぽく、左右 18% / 82% の2カラム（frameset）で分離して表示できます。

= 主な特徴 =

* `<frameset cols="18%,82%">` による2カラム表示（設定でON/OFF可能）
* 左フレーム：ナビゲーションメニュー（未設定時は固定ページ一覧に自動フォールバック）
* 右フレーム：投稿/固定ページ本文（背景にスラッグ/サイト名のテキストタイル）
* メニューに「レガシー表示切り替え」ボタンを追加可能（外観 → メニュー）
* レガシー表示を検索結果に出さない `noindex` を設定画面で切替可能
* Cookie による表示状態の記憶（`?legacy=1` で ON、`?legacy=0` で解除）
* メニューリンクへの `?legacy=1` 自動付与（レガシー表示中のサイト内回遊をサポート）
* `Cache-Control: no-store` によるキャッシュ事故防止
* カスタムフィールド（ACF / postmeta）をレガシー表示でも表示するオプション（権限制御付き）
* 「通常表示に戻す」ヒントリンクの表示/非表示切替

= 動作要件 =

* WordPress 5.0 以上
* PHP 7.4 以上

== Installation ==

1. 「プラグイン → 新規追加 → プラグインのアップロード」からZIPをアップロード
2. 有効化
3. 「設定 → Legacy View Switcher」で各オプションを確認
4. サイトURLに `?legacy=1` を付けて表示を確認

= おすすめ：メニューに切り替えボタンを追加 =

1. 「外観 → メニュー」を開く
2. 左側の「レガシー表示 切り替え」パネルから「メニューに追加」
3. メニューを保存

メニュー項目のラベルとリンク先は、現在の表示モードに応じて自動で切り替わります。

== Frequently Asked Questions ==

= noindex をONにすると、通常表示のSEOに影響はありますか？ =

いいえ。`noindex` は `?legacy=1` が付いたURLにのみ適用されます。通常表示（パラメータなしのURL）には一切影響しません。

ただし、キャッシュ設定で「クエリ文字列を無視」している環境だと、通常表示とレガシー表示が混在する可能性があります。その場合は設定の「キャッシュ事故を防ぐ（no-store）」をONにしてください。

= メニューを設定していないと左側はどうなりますか？ =

メニューが未設定（または空）の場合は、自動的に公開済み固定ページの一覧を表示します。

= テーマに影響はありますか？ =

ありません。本プラグインはテーマファイルを一切変更しません。`?legacy=1` がURLに含まれるときだけ専用テンプレートで描画し、通常のサイトはそのまま維持されます。

= マルチサイトで使えますか？ =

はい。各サブサイトごとに独立して動作します。設定もサブサイト単位で保存されます。アンインストール時には全サブサイトの設定を自動削除します。

= 完全にアンインストールするには？ =

WordPress管理画面からプラグインを無効化→削除してください。保存設定（`lvs_settings`）はアンインストール時に自動で削除されます。

== Screenshots ==

1. 設定画面（設定 → Legacy View Switcher）
2. 外観 → メニュー（「レガシー表示 切り替え」の追加）
3. レガシー表示（frameset 2カラム）

== Changelog ==

= 1.0.5 =
* バグ修正：レガシーメニュー出力で余分な `</li>` が出る問題を修正
* 安定性改善：frameset の左メニューリンクに `target="main"` を明示

= 1.0.4 =
* セキュリティ改善：テンプレート内の投稿タイトル出力を esc_html() でエスケープ（XSS 対策強化）
* バグ修正：本文内リンク書き換え処理で PCRE エラー時にコンテンツが消失する問題を修正（null チェック追加）
* 内部整理：重複した docblock の整理、余分な空行の除去
* 動作要件を PHP 7.4 以上に変更（PHP 7.0-7.3 の setcookie フォールバックを除去）
* Tested up to を 6.8 に更新

= 1.0.3 =
* 安定性改善：set_cookie() のインデント崩れを修正
* 安定性改善：wp_get_nav_menus() の戻り値が WP_Error の場合のフォールバックを追加
* マルチサイト対応：アンインストール時に各サブサイトの設定も削除
* 内部整理：プラグインヘッダーに Plugin URI / Author URI を追記
* readme.txt に Tested up to: 6.7 を追記

= 1.0.2 =
* 説明文に免責を追記（特定の個人・団体・サイトの模倣を推奨しないことを明記）
* 管理画面の文言を微調整

= 1.0.1 =
* セキュリティ改善：カスタムフィールド表示をデフォルトOFFにし、権限制御を追加
* 安全性改善：legacy パラメータの値を 0/1 のみに厳格化
* 安全性改善：外部サイトからの Cookie 永続化を Fetch Metadata / Referer で防止

= 1.0.0 =
* 初回リリース

== Upgrade Notice ==

= 1.0.5 =
レガシーメニューHTMLとframeset内リンク遷移の軽微な修正を含みます。アップデートを推奨します。

= 1.0.4 =
セキュリティ改善（XSS 対策強化）とバグ修正を含みます。アップデートを推奨します。

= 1.0.3 =
安定性とマルチサイト対応の改善を含みます。

= 1.0.2 =
説明文の免責を追記しました（機能変更はありません）。

= 1.0.1 =
セキュリティ関連の改善を含みます。アップデートを推奨します。

= 1.0.0 =
初回リリース
