alleyinteractive / internal-flags
Use a hidden taxonomy to improve expensive queries.
Installs: 27 853
Dependents: 0
Suggesters: 0
Security: 0
Stars: 5
Watchers: 34
Forks: 1
Open Issues: 0
Type:wordpress-plugin
Requires (Dev)
- alleyinteractive/alley-coding-standards: ^0.3
- mantle-framework/testkit: ^0.4
- phpunit/phpunit: ^9.3.3
This package is auto-updated.
Last update: 2024-12-22 00:04:16 UTC
README
Creates a hidden taxonomy to improve expensive query performance by not relying on meta queries. Allows for 'flags' to be set/unset on posts easily and entirely hidden from the end-user.
Instructions
By default, the internal taxonomy will be added to all registered post types.
Common Use Cases
- Hiding from archives/searches
- Posts by an author (where author is stored as a meta normally)
- Showing/hiding sponsored posts
Usage
Setting a flag on a post
use Internal_Flags\set_flag; set_flag( 'hide-from-archives', $post_id );
Removing a flag on a post
use Internal_Flags\remove_flag; remove_flag( 'hide-from-archives', $post_id );
Checking if a flag is on a post
use Internal_Flags\has_flag; has_flag( 'hide-from-archives', $post_id ); // bool
Searching for posts with a flag
use Internal_Flags\get_flag_tax_query; $posts = new \WP_Query( [ // ... 'tax_query' => [ get_flag_tax_query( 'show-on-page' ) ], ], );
Searching for posts without a flag
Inverse of the above
use Internal_Flags\get_flag_tax_query; $posts = new \WP_Query( [ // ... 'tax_query' => [ get_flag_tax_query( 'hide-from-archives', false ) ], ], );