WP Manifestindependent plugin directory
manifest / content / vkfs-taxonomy-filter

VKFS Taxonomy Filter

VKFS Taxonomy Filter - WordPress plugin for taxonomy-based filtering

by NExT-Season · github.com/atsushia/vkfs-taxonomy-filter

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/atsushia/vkfs-taxonomy-filter/archive/refs/heads/main.zip

VK Filter Search Pro の拡張プラグイン。タクソノミーフィルターブロックで 除外するタームを指定 できるようにします。

概要

VK Filter Search Pro の「タクソノミーブロック」に「除外するタームの設定」パネルを追加します。タクソノミーを選択した後、フロントエンドに表示したくないタームをチェックボックスで選択できます。

動作イメージ

ブロックエディターのサイドバーに「除外するタームの設定」パネルが追加されます。

タクソノミーブロック設定
└── タクソノミー:セミナー分類
└── このブロックのラベル
└── 選択形式
└── 表示順設定

除外するタームの設定        ← このプラグインで追加
└── □ アーカイブ視聴
└── ☑ クローズド           ← チェックしたタームはフロントに表示されない
└── □ 受付中
└── ☑ 受付終了
└── □ 開催終了
└── 2 件のタームを除外中

要件

  • WordPress 6.6 以上
  • PHP 7.4 以上
  • VK Filter Search Pro が有効化されていること

インストール

  1. このフォルダを wp-content/plugins/ に配置する
  2. WordPress 管理画面「プラグイン」から VKFS Taxonomy Filter を有効化する

開発

ビルド環境のセットアップ

npm install

JS のビルド

# 本番ビルド
npm run build

# 開発用ウォッチ(ファイル変更を監視して自動ビルド)
npm run start

ビルド結果は build/ ディレクトリに出力されます。

ファイル構成

VKFS-Taxonomy-Filter/
├── vkfs-taxonomy-filter.php        # メインプラグインファイル
├── inc/
│   └── class-vkfs-taxonomy-filter.php  # PHP 処理クラス
├── src/
│   └── index.js                    # エディター拡張 JS(ソース)
├── build/
│   ├── index.js                    # ビルド済み JS(自動生成)
│   └── index.asset.php             # 依存関係(自動生成)
└── package.json

仕組み

エディター側(JavaScript)

  • blocks.registerBlockType フィルターで vk-filter-search-pro/taxonomy-search-pro ブロックに excludedTermIds(除外タームIDの配列)属性を追加
  • editor.BlockEdit フィルターで「除外するタームの設定」パネルを InspectorControls に追加
  • タームの一覧は REST API(/wp-json/vkfs-taxonomy-filter/v1/terms/{taxonomy})から取得
  • タクソノミーを変更すると除外リストは自動的にリセット

PHP 側

  • block_type_metadata_settings フィルターで excludedTermIds 属性を PHP 側のブロックスキーマに登録(ServerSideRender のバリデーションエラーを防止)
  • pre_render_block / render_block フィルターでブロックのレンダリングを前後を挟み込む
  • vkfs_taxonomy_custom_setting フィルターに exclude を追加し、get_terms 呼び出し時に指定タームを除外
  • プルダウン / チェックボックス / ラジオボタンの全選択形式に対応