Skip to content

v1.3.0 - ページ単位の臨時IP制御および救済URLの強化

Latest

Choose a tag to compare

@taman777 taman777 released this 20 Dec 15:35
· 2 commits to main since this release
e2c2ddf

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)はそのまま維持されます。
  • プラグイン全体の動作に影響を与えず、必要なページにのみ制限をかけることが可能です。