WordPress Plugin : Plugin Load Filter Addon

English Page

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以上が必要となっています

購入とダウンロード

Plugin Load Filter Addon

WordPress プラグイン "Plugin Load Filter" の拡張アドオン.

¥6,000
¥600 (税額)
合計金額: ¥6,600

ご購入手順

  • 今すぐ購入 ボタンをクリックすると、メールアドレスとクレジットカード情報を入力するダイアログが表示されます
  • クレジットカード(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 アドオンをご利用いただきありがとうございます

設定はちょっと面倒かもしれませんが、うまくいけばプラグインの読み込みを減らしたり、ページ表示を高速化したりすることができるので、ぜひ試してみてください

ご不明な点がございましたら、ご購入時のお取引番号を記載の上、メールにてお問い合わせください

go-to-top