alleyinteractive/wp-find-one
Query for and return one WordPress post, term, or other object, bypassing intermediate arrays.
19,706
4
| Install | |
|---|---|
composer require alleyinteractive/wp-find-one |
|
| Latest Version: | v3.0.0 |
| PHP: | ^8.2 |
| License: | GPL-2.0-or-later |
| Last Updated: | Nov 19, 2024 |
| Links: | GitHub · Packagist |
Maintainer: alleyinteractive
Find One
The find_one() family of functions are wrappers for common WordPress retrieval functions like get_posts() or get_terms() that reduce the return value of those retrieval functions into a single result.
Installation
Install the latest version with:
composer require alleyinteractive/wp-find-one
Basic usage
To find one item in a person post type:
<?php
use function Alley\WP\find_one_post;
// Returns a \WP_Post or null.
$person = find_one_post(
[
'meta_key' => 'twitter',
'meta_value' => '@potatomaster',
'post_type' => 'person',
]
);
which is equivalent to:
<?php
$person = \get_posts(
[
'meta_key' => 'twitter',
'meta_value' => '@potatomaster',
'post_type' => 'person',
'posts_per_page' => 1,
'suppress_filters' => false,
]
);
if ( ! empty( $person[0] ) ) {
$person = $person[0];
}
Taxonomy terms can be searched for similarly:
<?php
use function Alley\WP\find_one_term;
// Returns a \WP_Term or null.
$category = find_one_term(
[
'slug' => 'potatomaster',
'taxonomy' => 'category',
]
);
which is equivalent to:
<?php
$category = \get_terms(
[
'number' => 1,
'slug' => 'potatomaster',
'taxonomy' => 'category',
]
);
if ( ! empty( $category[0] ) ) {
$category = $category[0];
}
The underlying find_result() function accepts the fully qualified class name of the object to search for and the array of query results:
<?php
use function Alley\WP\find_result;
// Returns a \WP_Network or null.
$network = find_result( \WP_Network::class, \get_networks() );
Helper functions are available for all core WordPress data types that have meta tables:
find_one_comment()find_one_post()find_one_site()find_one_term()find_one_user()