dutchigor/cmb2-rest-query

为任何设置了 rest_query 属性的 CMB2 字段添加查询参数到 REST API。

v1.0.1 2020-03-30 11:24 UTC

This package is auto-updated.

Last update: 2024-09-29 05:22:24 UTC


README

为任何设置了 rest_query 属性的 CMB2 字段添加查询参数到 REST API。

如何安装

选项一

  • 克隆或下载并将此插件解压缩到您的 WordPress 插件目录中,然后激活。

选项二

  • 将 dutchigor/cmb2-rest-query 添加到 composer 的必需包中,并在您的代码中引入 CMB2-rest-query.php

如何使用

在 CMB2 中设置元框

将 query_rest 属性添加到您希望查询的字段中您的 CMB2 字段配置。

  • 如果设置为 true,则将使用字段 ID 查询 REST API。
  • 如果设置了一个值,则将使用该值查询 REST API。

示例

$cmb = new_cmb2_box( [
    'id'            => 'my_metabox',
    'title'         => __( 'My Metabox', 'cmb2' ),
    'object_types'  => [ 'post' ],
    'show_in_rest'  => WP_REST_Server::ALLMETHODS
] );

$cmb->add_field( [
    'id'            => 'my_text_field',
    'name'          => 'My text field',
    'type'          => 'text',
    'rest_query'    => true
] );

$cmb->add_field( [
    'id'            => 'custom_query_name',
    'name'          => 'My text field',
    'type'          => 'text',
    'rest_query'    => 'my_query'
] );

查询 REST API

对于设置了 rest_query 的每个字段,在注册该字段元框的每个文章类型上,REST 请求将可用 3 个参数

  • 字段的 rest_query 值或 id(如上所述)
  • 上述参数后追加 _compare
  • 上述参数后追加 _type

将字段的查询参数添加到请求中将在请求的元查询中添加该字段。默认情况下,比较将为 '=',但使用 {rest_query}_compare 参数,这可以更改为 WP_Meta_Query 允许的任何选项。查询参数的类型将默认设置为 'CHAR',但可以使用 {rest_query}_type 覆盖,同样使用 WP_Meta_Query 允许的值。

按照上述示例,查询可能如下所示

const request = new Request('https://wordpresstheme.cn/wp-json/wp/v2/posts?my_text_field=hello&my_query=world&my_query_compare=LIKE');