2020-03-17 / 5807阅
有关自定义字段的查询,可用使用 9 个参数:
meta_key(字符串):自定义字段的名(key) meta_value(字符串):自定义字段的值(value) meta_value_num(数字):自定义字段的值(value) meta_compare(字符串):匹配方法(=、!=、>、>=、< 、<=),默认是 “=”meta_query(数组):处理复杂的查询relation(字符串):条件的逻辑关系,OR(或者)或 AND(和)key(字符串):自定义字段的名(key)value(字符串):自定义字段的值(value)compare(字符串):匹配方法(=、!=、>、>=、< 、<=、LIKE、NOT LIKE、IN、NOT IN、BETWEEN、NOT BETWEEN、EXISTS、NOT EXISTS),默认是 “=”type(字符串):自定义字段的类型(NUMERIC、BINARY、CHAR、DATE、DATETIME、DECIMAL、SIGNED、TIME、UNSIGNED),默认 是 “CHAR”简单的自定义字段查询 获取拥有自定义字段 color 的文章: $query = new WP_Query( 'meta_key=color' );
获取自定义字段的值为 “blue” 的文章,不管字段的键值是什么:
$query = new WP_Query( 'meta_value=blue' );
获取自定义字段的值为 “blue” 的页面,不管字段的键值是什么
$query = new WP_Query( 'meta_value=blue&post_type=page' );
获取自定义字段 color 是 “blue” 的文章:
$query = new WP_Query( array( 'meta_key' => 'color', 'meta_value' => 'blue' ) );
获取自定义字段 color 不是 “blue” 的文章:
$query = new WP_Query( array( 'meta_key' => 'color', 'meta_value' => 'blue', 'meta_compare' => '!=' ) );
获取文章类型是 “product” 的文章,并且自定义字段 price 小于或者等于 22:
$query = new WP_Query( array( 'meta_key' => 'price', 'meta_value' => '22', 'meta_compare' => '< =', 'post_type' => 'product' ) );
简单的复杂查询 获取 product 自定义文章类型中 color 自定义字段不包含 “blue” 的文章:
$args = array( 'post_type' => 'product', 'meta_query' => array( array( 'key' => 'color', 'value' => 'blue', 'compare' => 'NOT LIKE', ), ), ); $query = new WP_Query( $args );
复杂的查询 多自定义字段匹配:
$args = array( 'post_type' => 'product', 'meta_query' => array( array( 'key' => 'color', 'value' => 'blue', 'compare' => 'NOT LIKE', ), array( 'key' => 'price', 'value' => array( 20, 100 ), 'type' => 'numeric', 'compare' => 'BETWEEN', ), ), ); $query = new WP_Query( $args );
在 product 自定义文章类型里获取 color 自定义字段不包含 “blue” 或者 price 字段是 20 到 100 之间的文章:
$args = array( 'post_type' => 'product', 'meta_query' => array( 'relation' => 'OR', array( 'key' => 'color', 'value' => 'blue', 'compare' => 'NOT LIKE', ), array( 'key' => 'price', 'value' => array( 20, 100 ), 'type' => 'numeric', 'compare' => 'BETWEEN', ), ), ); $query = new WP_Query( $args );
阅读文章或者观看视频过程中有任何问题,请下方留言或者联系我Q248758228