IP Login Restrictor v1.3.0 - 変更履歴
新機能: ページ単位の臨時IP制御および救済URLの強化
概要
各投稿や固定ページごとに、そのページ専用の臨時IPアドレスを設定できるようになりました。また、アクセス拒否画面にページ独自のメッセージを表示する機能や、レスキューURLのカスタマイズ機能を追加しました。
主な変更点
1. ページ単位の臨時IP制御
- 投稿・固定ページの編集画面のサイドバーに「IP Login Restrictor - 臨時IP設定」メタボックスを追加
- 機能スイッチ: ページごとに臨時IP制限を「有効/無効」に切り替え可能
- 独立した制御: プラグイン全体のフロントエンド制限が「無効」でも、ページ個別に有効化すればそのページだけをIP制限可能
- 1行に1つのIPアドレスを入力可能(CIDR表記にも対応)
- 「現在のIPを追加」ボタンで、簡単にIPを追加可能
- 自動無効化(有効期限): 指定した日時を過ぎるとページ制限を自動で無効化。新規設定時はデフォルトで24時間後がセットされます。
2. アクセス拒否画面のカスタマイズ(ページ別)
- 一言メッセージ設定: ページごとにアクセス拒否時に表示したいメッセージを設定可能
- 新トークン
{page_message}: 拒否画面のHTML設定で{page_message}トークンが使用可能 - 自動表示ガード: HTML設定にトークンが含まれていなくても、メッセージが設定されていれば最後に自動付加して表示(デフォルトのテンプレートはスッキリした状態のまま、メッセージがある時だけ現れます)
3. 設定ページへの「ページ単位のIP制御一覧」追加
- 一括監視: プラグイン設定ページに、現在ページ個別のIP制限が「有効」になっているページを一覧表示。
- 詳細表示: 各ページのID、スラッグ、タイトル、公開ステータス(公開/下書き等)、および 「IP制御残時間」 を表示。
- クイック編集: 一覧から直接各ページの編集画面へ移動できるボタンを追加。
4. 管理全般への警告表示
- 赤帯のグローバル通知: ページ単位のIP制限が1件でも有効(かつ期限内)な場合、管理画面のヘッダーに「ページ単位のIP制御あり」という赤色のバーを表示。
- 注意喚起: 意図しない制限の消し忘れを防止し、サイト全体のセキュリティ状態を常に把握可能。
5. レスキューURLのカスタマイズ強化
- パラメータ名の変更: URLの
?iplr_rescue=の部分(パラメータキー)を自由に変更可能に - セキュリティ向上: 独自のパラメータ名とキー値を組み合わせることで、救済URLの推測をより困難に
4. 投稿一覧画面の拡張
- 投稿一覧・固定ページ一覧に「臨時IP」カラムを追加
- 設定の有効/無効状態をアイコン(✓/✗)で表示
- 設定されているIPの数と内容(最大3件まで)を表示
- 期限切れ通知: 有効期限を過ぎた設定は一覧上で「! 期限切れ」と赤字で表示
5. 翻訳の拡充
- 新機能に関する日本語翻訳(有効、無効、パラメータキー、有効期限など)を完全追加
技術的な詳細
新しい定数
const META_TEMPORARY_IPS = '_iplr_temporary_ips'; // ページ固有の臨時IP
const META_TEMPORARY_IPS_MESSAGE = '_iplr_temporary_ips_message'; // ページ固有のメッセージ
const META_TEMPORARY_IPS_EXPIRE = '_iplr_temporary_ips_expire'; // ページ固有の制限有効期限
const OPTION_RESCUE_PARAM = 'ip_login_restrictor_rescue_param'; // URLパラメータキー設定ロジックの改善
get_queried_object_id()を使用し、フロントエンドでのID取得の確実性を向上- 文字列置換処理において、トークンの有無にかかわらず情報を保護するフォールバック処理を実装
バージョン情報
- バージョン: 1.2.1 → 1.3.0
- リリース日: 2025-12-21
- 追加改善: タイムゾーン(Locale)設定を考慮した有効期限判定への修正、および
{datetime}トークンの表示形式の最適化。
互換性
- 既存の設定や救済URL(デフォルト
iplr_rescue)はそのまま維持されます。 - プラグイン全体の動作に影響を与えず、必要なページにのみ制限をかけることが可能です。