WordPress プラグイン Plugin Load Filter をご利用頂きありがとうございます.
プラグイン開発やサポートを継続するために、皆様のご支援を必要としています
Plugin Load Filter を気に入ってくださったら、アドオンの購入をご検討いただけると幸いです
Plugin Load Filter アドオン
このアドオンは Plugin Load Filter の基本機能では対応が難しかったWooCommerce 等に対応するために、URLパターンマッチングによるプラグインのフィルタリング機能を実装しています
もちろん、WooCommerceを利用していなくても、URLパターンマッチングによる強力なフィルタリング機能による管理者ダッシュボードのフィルタリングやタクソノミーでのフィルタリングが可能になります
特徴
- リクエストURLパターンマッチフィルタ
- タクソノミー(カテゴリーやタグ等.)のターム名フィルタ
- Ajaxリクエストのアクションフィルタ
この3つの機能による強力なプラグインのフィルタリングを提供します
例えば、ログインページ、AMPページ、管理ダッシュボードページ、REST API(wp-json)、Ajax(admin-ajax/wc-ajax) 等のリクエストに対してプラグインをフィルタリングすることが可能です
URLフィルタ設定データのインポート/エクスポートも可能です
サンプルとしてWooCommerce用のURLフィルタデータを提供しています
WooCommerceのプラグインを使用している場合は、サンプルのWooCommerce URLフィルタデータを元にカスタマイズすれば、簡単に WooCommerce 関連ページのパフォーマンスを向上させることができます
アドオンの使用には、Plugin Load Filterのバージョン4.0以上が必要となっています
購入とダウンロード
WordPress プラグイン "Plugin Load Filter" の拡張アドオン.
ご購入手順
- 今すぐ購入 ボタンをクリックすると、メールアドレスとクレジットカード情報を入力するダイアログが表示されます
- クレジットカード(Visa/Mastercard/American Express/JCB)情報を入力後、お支払いボタンをクリックすると、決済処理となります
- 決済完了後にチェックアウト画面となり、ダウンロード用のリンクが表示されるのでクリックしてアドオンをダウンロードして下さい
- 入力したメールアドレスへも1年間有効のプログラムダウンロード用パスワードが送信されますので大切に保管して下さい
- デジタル商品の性質上、ご購入後のキャンセル・返金・返品はお受けできません。 ご理解のほどよろしくお願いいたします
- 決済は Stripe で処理されクレジットカード情報は当サイトには保存されません
購入情報をメールアドレスへ送信します。日常で使用されているメールアドレスをお使い下さい
プログラム更新
購入後1年間は下記ダウンロードボタンから最新版を取得することが出来ます
Plugin Load Filter Addon Version 1.0.4
ダウンロードボタンをクリックするとパスワード入力ページが表示されるので、ご購入時にお送りしたメールに記載されているパスワードを入力してダウンロードして下さい
パスワードを入力すると自動的にダウンロードが実行されます
インストール
ダウンロードしたzipファイルは、プラグインページの新規追加 からプラグインをアップロードしてインストールすることが出来ます
インストールしたら、インストール済みプラグインのページから有効化して下さい
必要な環境
- WordPress 5.3 or higher
- PHP version 7.2 or higher
- Plugin Load Filter 4.0 or higher
使い方
アドオンを有効にすると、Plugin Load Filter に URL フィルタ登録 が追加されます
管理画面のダッシュボードに追加されたメニュー Plugin Load Filter – URL フィルタ登録から設定を行います
設定ページを開くと、デフォルトで設定済みのフィルターが表示されます
フィルタ登録/編集
画面下部には、フィルタデータの登録/編集用画面が表示されます
グループ | フィルタ(スラッグ)のグループ名称を設定します プラグインの有効化/無効化はグループに対して行われます |
スラッグ | URL フィルタデータ固有のスラッグ名称 |
概要 | URLフィルタデータの概要を入力します |
ターゲット | URL フィルタが対象とするデバイスまたはリクエスト URL の種類を指定します デバイス : Desktop / Mobile リクエスト: non-singular / singular / ajax ※シングラーページのリクエストタイプに対し、ポストタイプとタクソノミーのマッチングを追加することができます ※Ajaxリクエストタイプにアクション名のマッチングを追加可能 |
リクエストURL パターンマッチ | URLをパースし、PATH要素とクエリパラメータ要素が設定とマッチするかを判定します ※クエリパラメータは、AND 及び NOT論理条件で判定できます |
ターゲットのリクエストタイプについて
3種類のリクエストURLとして取り扱います
- 投稿や固定ページ等の Singular ページリクエストタイプ
- admin-ajax や wc-ajax の Ajax リクエストタイプ
- その他のリクエストタイプ
いくつかのリクエストタイプについては、オプションで追加の判定を追加することができます
Singular リクエスト
このタイプのリクエストには、ポストタイプとタクソノミーの判定を設定することができます
例えば、ポストタイプに 投稿(Post) が指定されている場合、リクエストURLのページが投稿(Post) であるか確認します
同様に、タクソノミーが指定されている場合は、リクエストURLのページに指定されたタクソノミーの用語が設定されているか確認します
Ajax リクエスト
このタイプのリクエストには、ajax のアクションを指定することができます
Ajaxのアクションを調べるには、ターゲットプログラムのコードを調べる必要があり、結構難しいのですが、アクセスログを確認することで簡単に調べることが出来ます
例えば、YASAKANI Cache のログ機能を使えば、どのようなアクションが使われているかを知ることができます
リクエストURLの PATH要素とクエリーパラメータについて
リクエストURLのパターンマッチングは、Path要素とクエリーパラメータに分けて判定します
この例では、Path は /blog/icon-box-test の部分で、Query は ? の後の amp=1 の部分です
使用できる文字について
パターンマッチングの設定を簡単にするために、使用できる文字を限定しています
有効文字 : 英数字, ハイフン(-), アンダースコア(_), スラッシュ(/), ドット(.), パーセント(%) と任意文字列のワイルドカード (*)
パターンマッチングのプログラム処理は正規表現を使用しています。そのために任意文字列の *
は .+?
メタ文字へ置き換え、Path (/?)keyword(/?$)
と Query (^|&)keyword(=|&|$)
の正規表現では自動的に判定文字列の前後にマッチ判定用のメタ文字を付けて実行しています
ワイルドカードとして知られる任意の文字列を表すアスタリスク ( * ) を活用すれば、柔軟なパターンを指定することができます
AND / NOT 論理条件について
多くのリクエストURLはPATHのみや、PATHとQueryのAND論理で判別できますが、それだけでは判別できないリクエストもあります
例えば、管理ダッシュボードの 投稿一覧 と 固定ページ一覧 のURL等です
- 投稿一覧 : /wp-admin/edit.php
- 固定ページ一覧 : /wp-admin/edit.php?post_type=page
どちらのリクエストも wp-admin/edit.php へのリクエストですが、判定の順番に関わらず、両者を区別するためには NOT論理が必要となります
投稿一覧ページ用のクエリーパラメータの NOT論理に post_type を設定すれば判別出来るようになります
フィルタ 有効化/無効化
登録しただけではまだフィルターは機能していません。機能させるには有効化する必要があります
一括操作、またはスラッグのリンクからフィルタの有効化/無効化ができます
ここで行うのは、フィルターの登録/編集、及び有効化/無効化/削除です
ここで有効にしたスラッグのグループごとに、別ページの プラグインロードフィルタ設定 でプラグイン毎の有効化/無効化を設定する必要があります
URL グループフィルタ
URLフィルタ登録で有効化されたフィルタは、プラグインロードフィルタ設定のURLグループフィルタに表示されます
グループごとに有効化または無効化するプラグインを指定して設定を保存します
テスト
フィルターを有効にしたら、画面上部のテスト機能を利用して、URLリクエストに対して期待通りに機能しているかどうかテストすることをお勧めします
リクエストURLを入力してテストボタンをクリックすると、URLフィルタのパターンマッチングをシミュレート動作した結果が表示されます
下の例では、amp_qフィルタにマッチしたことを示しています
期待通りの結果が得られない場合は、フィルタ設定データの見直しと修正を行ってください
フィルタリング結果の確認
シミュレーションテストだけでなく、ページアクセス時の結果も確認します
ログインした状態でページを表示し、管理バーのリンクからフィルタリングされた結果を確認します
管理バーの PLF 部分をクリックすると、そのページのフィルタリング結果が表示されます
設定後、意図した通りに動作することを確認してください
また、プラグインを追加、更新、削除した時も確認してください
フィルタ優先度
シングルページ毎の設定 > URL グループフィルタ > Page Type フィルタ (Admin) > Page Type フィルタ (Page)
URLグループフィルタは、グループごとにスラッグをソートし、A-Za-z順に処理するので、グループとスラッグ名の組み合わせで判定順の優先度が決まります
ただし、シングルページ毎のフィルタ設定を使用している場合は、URLグループフィルタよりも優先されます
WooCommerce 用サンプルフィルターデータ
人気の WooCommerceプラグインは、大規模なプラグインで使用すると反応が遅くなる傾向があります
WooCommerceのプラグインが必要なページと不要なページでプラグインをフィルタリングしたいという要望が多かったのですが、Plugin Load Filter では対応が難しかったです
アドオンに実装したURLフィルタリングにより、WooCommerceのフィルタリングにも対応出来るようになりました
WooCommerceでは様々なURLに対応する必要があるため、WooCommerceのフィルタリング用のサンプルデータを提供しています。WooCommerceユーザーの方はWooCommerceのフィルタリング用データファイル( plf_wc_filter.zip)をダウンロードして解凍した plf_wc_filter.json ファイルをインポートしてください
WooCommerce サンプルフィルタデータ
ダウンロードボタンをクリックするとパスワード入力ページが表示されるので、パスワード( plf-woo )を入力してダウンロードして下さい
パスワードを入力すると自動的にダウンロードが実行されます
インポートするとこんな感じになります
サンプルでは、管理ダッシュボードページ用に WC-admin を 7 つ、フロントページ用に WC-Page を 6 つ、そして wc-ajax、wc rest api、wc api、wc auth 用の 5 つのフィルタを定義しています
サイトに合わせてカスタマイズし、正しく動作するかどうかを確認して使用してください
免責事項
本ソフトウェアの使用により生じたいかなる損害についても作者は責任を負いかねますので、自己責任においてご利用ください
履歴
Ver1.0.4
2024-11-13
load_plugin_textdomain 呼び出しを init アクションフックに変更
Ver 1.0.2
2022-2-7
PHP8.1 の動作確認と PHP Notice の修正
Ver 1.0.1
2020-9-12
一部環境で JSONファイルの読み込みが出来なかったので、file_get_contents から SplFileObject のファイルリード処理へ変更
Ver 1.0.0
2020-8-25
アドオンの最初のリリース
おわりに
Plugin Load Filter アドオンをご利用いただきありがとうございます
設定はちょっと面倒かもしれませんが、うまくいけばプラグインの読み込みを減らしたり、ページ表示を高速化したりすることができるので、ぜひ試してみてください
ご不明な点がございましたら、ご購入時のお取引番号を記載の上、メールにてお問い合わせください