我有一个名为person的自定义帖子和一个名为age的分类法(如标签)。就我所知,搜索税查询似乎不像元查询那样支持between操作符。
有没有一种方法可以完成between,比如使用税务查询的etc操作符,或者我必须提出自己的sql问题?
另外,最好创建一个名为age的自定义字段,而不是使用支持比较运算符的元查询进行分类和查询?我认为使用自定义字段的一个缺点是,您无法在管理面板内查询有多少人达到该年龄,或者只能查询具有特定年龄的人等。此外,如果我想找到所有人的最小年龄和最大年龄,我必须获取所有帖子并逐一进行比较。
我找到了一个模拟between操作符的解决方案:
$min_age = 18;
$max_age = 100;
$ages = array();
for($i=$min_age; $i<=max_age; $i++){
array_push($ages , $i);
}
$args = array(
\'post_type\' => \'post\',
\'tax_query\' => array(
array(
\'taxonomy\' => \'age\',
\'field\' => \'slug\',
\'terms\' => $ages
)
)
);
$query = new WP_Query( $args );
那么你认为什么更好呢?
我知道我的问题有点含糊,对此我很抱歉,但我想知道什么是解决这种情况的最佳方法。
最合适的回答,由SO网友:cybmeta 整理而成
我认为您使用的自定义分类法的概念不正确。如果要按其值排序,则应使用自定义字段。
数字思维很难理解什么是分类法。但要以一种方式将事物分组,即一个群体不高于或低于另一个群体。分类法中的每个术语都具有相同的值,但在层次分类法中除外。例如,想想动物分类学。所有属都在同一水平,都在同一亲本下,所有科都在同一亲本下。如何按类别排序或在类别之间搜索?。只有在动物属于/或/不属于/并且属于一个或多个属时,才能搜索动物。分类法显然不适用于将用于排序的值(中间的searh是类型o排序方式)。
您可以为表示年龄的每个整数构建层次分类法,但即使在这种情况下,您也必须按分类法术语分组,然后它们递归地搜索子项/父项,而不是真正的排序方式/值之间的搜索。我认为,如果将e age作为meta data (ie custom field).