WP Manifestindependent plugin directory
manifest / editor / outstand-term-selector

Outstand Term Selector WP Registry grade A. No security issues foundWP RegistryNo security issues foundOpen the reportA

Use the hierarchical (checkbox tree) term selector for non-hierarchical taxonomies.

★ 1stars
3release downloads
292composer installs
1.0.2latest · 13d ago

Install

Download outstand-term-selector-1.0.2.zip From the 1.0.2 release on GitHub, Oct 9, 2026

Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/pixelalbatross/outstand-term-selector/releases/download/1.0.2/outstand-term-selector-1.0.2.zip

On Packagist as outstand/term-selector:

composer require outstand/term-selector
Updates itself. It ships its own updater (Plugin Update Checker), so new versions appear under Dashboard → Updates.

Use the hierarchical (checkbox tree) term selector for non-hierarchical taxonomies.

Why

WordPress renders a free-text tag input for non-hierarchical taxonomies. That is the right control for open vocabularies, where editors are meant to invent terms. It is the wrong control for a closed vocabulary — a fixed list of regions, difficulty levels, or programme types — where editors should pick from what already exists instead of silently creating near-duplicate terms.

This plugin swaps in the core PostTaxonomiesHierarchicalTermSelector component (the checkbox tree used by categories) for the taxonomies you opt in.

Opt-in only

The plugin never applies the hierarchical selector to every non-hierarchical taxonomy on a site. Flat taxonomies exist precisely so editors can add terms freely; changing that everywhere would break editorial workflows the site owner never asked us to touch. A taxonomy is only affected if it opts in explicitly, through one of the two paths below.

A taxonomy is additionally ignored unless it is non-hierarchical, show_ui, and show_in_rest — the component is pointless otherwise, and the block editor panel it replaces only exists under those conditions.

1. At registration

If you own the register_taxonomy() call, pass use_hierarchical_selector:

register_taxonomy(
    'region',
    'post',
    [
        'hierarchical'              => false,
        'show_ui'                   => true,
        'show_in_rest'              => true,
        'use_hierarchical_selector' => true,
    ]
);

2. Via filter

If the taxonomy is registered by someone else — a third-party CPT plugin, a theme, or core — use the outstand_term_selector_taxonomies filter. It receives the resolved list of slugs and can add to it or remove from it:

add_filter(
    'outstand_term_selector_taxonomies',
    function ( $slugs ) {
        $slugs[] = 'post_tag';
        return array_values( array_diff( $slugs, [ 'region' ] ) );
    }
);

Slugs returned by the filter are validated again, so an unregistered, hierarchical, show_ui => false, or non-REST taxonomy can never be forced through.

Requirements

  • WordPress 6.7+
  • PHP 8.2+

Development

composer install
npm install
npm run build          # → build/js/editor.js + build/js/editor.asset.php

Linting:

composer run lint      # phpcs (PixelAlbatross)
npm run lint:js

Tests (WordPress integration tests inside @wordpress/env, Docker required):

npm run test:setup     # starts wp-env (ports 8997 / 8998)
npm run test:unit

Before tagging a release, rebuild the committed vendor/ without dev dependencies:

composer update --no-dev -o

License

GPL-3.0-or-later. See LICENSE.

Releases

3 releases. Each count is every asset in that release; expand a row for the breakdown.

Tag
Published
Assets
Downloads
1.0.2 latest
Oct 9, 2026 13d ago
outstand-term-selector-1.0.2.zip
2
Oct 9, 2026 13d ago
outstand-term-selector-1.0.1.zip
0
Aug 2, 2026 2mo ago
outstand-term-selector-1.0.0.zip
1
A grade

Security

Outstand Term Selector 1.0.2 · audited by WP Registry

No security issues found.

Audited release
1.0.2
Findings
none
Worst severity
—
Content hash
b7538daacf2fa65715443760…

WP Registry hashes the installable build and reports on that exact bytes-for-bytes copy. Embargoed findings are withheld until they are disclosed, so a clean verdict means nothing public is outstanding. WP Manifest does not audit code itself.