alleyinteractive/wp-find-one

查询并返回一个WordPress文章、术语或其他对象,跳过中间数组。

v2.0.0 2022-12-29 20:23 UTC

This package is auto-updated.

Last update: 2024-09-13 22:53:48 UTC


README

函数家族find_one()是WordPress常用检索函数(如get_posts()get_terms())的包装,将那些检索函数的返回值简化为单个结果。

安装

使用以下命令安装最新版本:

$ composer require alleyinteractive/wp-find-one

基本用法

person文章类型中查找一个项目

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

这相当于

<?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];
}

同样可以搜索分类术语

<?php

use function Alley\WP\find_one_term;

// Returns a \WP_Term or null.
$category = find_one_term(
    [
        'slug'     => 'potatomaster',
        'taxonomy' => 'category',
    ]
);

这相当于

<?php

$category = \get_terms(
    [
        'number'   => 1,
        'slug'     => 'potatomaster',
        'taxonomy' => 'category',
    ]
);

if ( ! empty( $category[0] ) ) {
	$category = $category[0];
}

底层的find_result()函数接受要搜索的对象的完全限定类名和查询结果数组

<?php

use function Alley\WP\find_result;

// Returns a \WP_Network or null.
$network = find_result( \WP_Network::class, \get_networks() );

提供了所有具有元数据表的WordPress核心数据类型的辅助函数

  • find_one_comment()
  • find_one_post()
  • find_one_site()
  • find_one_term()
  • find_one_user()

关于

许可证

GPL-2.0-or-later

维护者

Alley Interactive