我有两个自定义字段,一个叫做movie
,另一个叫year
。我想查询wp,让我返回按年份分组的电影;我一年要看一部电影。
我在这里尝试过
function query_group_by_filter($groupby)
{
global $wpdb;
return $wpdb->postmeta . '.meta_key = "year"';
}
add_filter('posts_groupby', 'query_group_by_filter');
$movies = new WP_Query(array(
'post_type' => 'post',
'meta_query' => array(
array(
'key' => 'movies', // name of custom field
'value' => "{$post_id}",
'compare' => 'LIKE'
)
)
));
remove_filter('posts_groupby', 'query_group_by_filter');
但这不能解决我的错误吗?
+---------+----+---------+----------+-----------------------+--+
| post_id | id | meta_id | meta_key | meta_value | |
+---------+----+---------+----------+-----------------------+--+
| 9 | 9 | 10 | movie | 264 | |
| 9 | 9 | 12 | year | a:1:{i:0;s:1:"1991";} | |
| 10 | 10 | 13 | movie | 264 | |
| 10 | 10 | 14 | year | a:1:{i:0;s:1:"1991";} | |
| 11 | 11 | 15 | movie | 300 | |
| 11 | 11 | 16 | year | a:1:{i:0;s:1:"2018"; | |
| 13 | 13 | 17 | movie | 300 | |
| 13 | 13 | 18 | year | a:1:{i:0;s:1:"2018"; | |
+---------+----+---------+----------+-----------------------+--+
我希望将电影和年份值分组并返回meta_value的值
9 movie 264
9 year 1991
13 movie 300
13 year 2018
答案 0 :(得分:0)
要给出准确的答案,请提供足够的数据,确切的自定义字段以及要获得的特定结果。但是我怀疑您不需要其他过滤器,而需要尝试“按几个(两个或更多)自定义字段值查询帖子”。这是一篇有关该主题的好文章:https://rudrastyh.com/wordpress/meta_query.html