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

VKFS Taxonomy Filter

VKFS Taxonomy Filter - WordPress plugin for taxonomy-based filtering

★ 0stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/atsushia/vkfs-taxonomy-filter/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

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 呼び出し時に指定タームを除外
  • プルダウン / チェックボックス / ラジオボタンの全選択形式に対応