=== Studio Noir Custom Page Styles ===
Contributors: studionoir
Tags: css, custom css, page styles, reusable css, file upload
Requires at least: 5.0
Tested up to: 6.9
Requires PHP: 7.4
Stable tag: 1.1.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

各ページに個別のカスタムCSSを適用できるプラグイン。スタイルの再利用、ファイルアップロード、ドラッグ&ドロップ並び替えに対応。

== Description ==

Studio Noir Custom Page Stylesは、個別のページや投稿にカスタムCSSを適用できるプラグインです。スタイルの再利用やファイル管理機能も備えています。

= 主な機能 =

* ページ/投稿エディタで直接カスタムCSSを記述
* **CSSおよびJavaScriptファイルのアップロード**
* **無制限のスタイル選択とドラッグ&ドロップ並び替え**
* JavaScriptファイルの読み込み位置選択（header/footer）
* パフォーマンス向上のための自動CSSファイル生成
* 有効化する投稿タイプの選択
* WordPress規約準拠のセキュアな実装

= 用途 =

* ランディングページへの独自デザイン追加
* 外部ライブラリを使った個別記事のカスタマイズ
* メインスタイルシートを肥大化させずにページ固有スタイルを管理
* 複数ページでスタイルパターンを再利用
* 特定ページへのJavaScriptエフェクトやアニメーション追加

= 使い方 =

1. 任意のページまたは投稿を編集
2. 「Custom Page Styles」メタボックスを探す
3. CSS/JSファイルをアップロード、既存スタイルを選択、またはカスタムCSSを記述
4. ドラッグ&ドロップでスタイルの読み込み順序を変更
5. 公開して反映を確認!

= 読み込み順序 =

スタイルは以下の順序で読み込まれ、柔軟なカスタマイズが可能です:

1. 選択スタイル（ベーステンプレート）
2. アップロードファイル（ライブラリとフレームワーク）
3. 直接記述CSS（最終調整と上書き）

== Installation ==

= 自動インストール =

1. プラグイン > 新規追加 へ移動
2. 「Studio Noir Custom Page Styles」を検索
3. 「今すぐインストール」をクリック
4. プラグインを有効化

= 手動インストール =

1. プラグインのzipファイルをダウンロード
2. プラグイン > 新規追加 > プラグインのアップロード へ移動
3. ダウンロードしたファイルを選択して「今すぐインストール」をクリック
4. プラグインを有効化

= 有効化後 =

1. 設定 > Custom Page Styles へ移動
2. 有効化する投稿タイプを選択
3. 任意のページ/投稿を編集して「Custom Page Styles」メタボックスを探す
4. カスタムCSSの記述を開始!

== Frequently Asked Questions ==

= カスタム投稿タイプで使用できますか? =

はい!設定 > Custom Page Styles で有効化する投稿タイプを選択できます。

= 使用中のテーマで動作しますか? =

はい、Custom Page StylesはどのWordPressテーマでも動作します。

= 1ページに何個のスタイルを適用できますか? =

無制限です!既存スタイルを何個でも選択でき、複数のCSS/JSファイルをアップロードし、カスタムCSSも記述できます。

= スタイルの読み込み順序を制御できますか? =

はい!ドラッグ&ドロップで選択スタイルを並び替えできます。設定した順序で読み込まれます。

= どのファイルタイプをアップロードできますか? =

CSSファイル（.css）とJavaScriptファイル（.js）のみです。1ファイルあたり最大5MBです。

= JavaScriptファイルはどこで読み込むべきですか? =

各JSファイルでheaderまたはfooterを選択できます。ほとんどの場合footerが推奨です（デフォルト）。

= アップロードファイルはどこに保存されますか? =

アップロードファイルは `/wp-content/uploads/sn-cps-styles/{投稿ID}/` に投稿別に整理されて保存されます。

= サイトパフォーマンスに影響しますか? =

いいえ、CSSは個別ファイルとして生成され、該当ページでのみ読み込まれるため、インラインスタイルより優れたパフォーマンスです。

= ページビルダーと併用できますか? =

はい、Studio Noir Custom Page StylesはElementor、Gutenberg、クラシックエディタなどのページビルダーと併用できます。

= メタボックスが表示されない場合は? =

1. プラグインが有効化されているか確認
2. 設定 > Custom Page Styles で該当の投稿タイプが有効化されているか確認
3. エディタ上部の「表示オプション」をクリックし、「Custom Page Styles」がチェックされているか確認

== Screenshots ==

1. ファイルアップロード機能付きのCustom Page Stylesメタボックス
2. 選択スタイルのドラッグ&ドロップ並び替え
3. 有効化する投稿タイプを選択する設定ページ

== Changelog ==

= 1.1.1 =
* セキュリティ: ajax_remove_file()のパストラバーサル対策を強化
* セキュリティ: ajax_upload_file()にfinfo_file()によるMIMEタイプ検証を追加
* 機能: ファイル名衝突時の自動リネーム機能（-1, -2等を付与）
* 改善: 包括的な検証によるファイルアップロードセキュリティの強化

= 1.1.0 =
* 新機能: 無制限スタイル選択（以前は2つまでに制限）
* 新機能: 選択スタイルのドラッグ&ドロップ並び替え（ACF風ソート可能UI）
* 新機能: CSSおよびJavaScriptファイルのアップロード機能
* 新機能: JavaScriptファイルのheader/footer読み込み位置選択
* 新機能: 投稿別ディレクトリでファイルを整理
* 改善: CSS読み込み順序の最適化（選択 → アップロード → 直接CSS）
* 改善: ファイルアップロードのセキュリティ強化（タイプ検証、サイズ制限）
* 改善: 視覚的フィードバックとファイル管理機能を備えた優れたUI

= 1.0.2 =
* 改善: スタイル読み込み優先度の最適化
* `wp_enqueue_scripts`フックの優先度を20に設定
* カスタムCSSでテーマスタイルを確実に上書き可能に

= 1.0.1 =
* セキュリティ: CSSサニタイゼーションの強化（WP_Errorサポート）
* セキュリティ: 追加の危険パターン検出
* セキュリティ: ファイルサイズ制限追加（CSS用1MB）
* 改善: Transient APIによるエラーハンドリングの改善
* 改善: パストラバーサル攻撃対策の強化

= 1.0.0 =
* 初回リリース
* ページ/投稿ごとのカスタムCSS
* 既存スタイル再利用機能
* 投稿タイプ選択
* 自動CSSファイル生成
* セキュリティ: SQLインジェクション対策
* セキュリティ: CSSサニタイゼーション
* セキュリティ: ファイルパス検証

== Upgrade Notice ==

= 1.1.1 =
重要なセキュリティアップデート!MIMEタイプチェックによるファイルアップロード検証の強化とパストラバーサル対策の改善。全ユーザーに推奨。

= 1.1.0 =
メジャーアップデート!ドラッグ&ドロップ機能付き無制限スタイル選択、CSS/JSファイルアップロード対応、読み込み順序制御の改善。v1.0.x との完全な後方互換性あり。

= 1.0.2 =
テーマスタイルを上書きしやすくするためのスタイル読み込み優先度の改善。

= 1.0.1 =
CSSサニタイゼーションとファイル検証を強化した重要なセキュリティアップデート。

= 1.0.0 =
Studio Noir Custom Page Stylesの初回リリース。
