alleyinteractive/internal-flags

Use a hidden taxonomy to improve expensive queries.

Installs: 4 556

Dependents: 0

Suggesters: 0

Security: 0

Stars: 5

Watchers: 34

Forks: 1

Open Issues: 0

Type:wordpress-plugin

v0.2.0 2022-07-27 04:00 UTC

This package is auto-updated.

Last update: 2024-03-21 22:27:52 UTC


README

Testing Suite

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 )
		],
	],
);