我正在使用WordPress的Beaver Builder,并且正在使用高级帖子显示我的自定义帖子类型。我有6支球队和大约30名属于每个团队的球员。我想在团队页面上显示团队的阵容,但在选择显示球员时不能按团队过滤。
我找到了这种方法:https://www.ultimatebeaver.com/docs/filter-query-parameters-advanced-posts/
但是我在比较球员和团队之间的元键时遇到了麻烦,并且不知道从哪里开始。
这是我到目前为止所拥有的:
global $post;
$current_team = $post->post_name;
if ( $settings->id == 'team-roster' ) {
$args['meta_key'] = 'team';
$args['posts_per_page'] = '30';
$args['meta_query'] =
array(
'key' => 'team',
'value' => '$current_team',
'compare' => '=',
);
}
return $args;
我试图与页面slug进行比较,这与存储在meta_key中的值相同。
我希望每个团队页面都向团队中的球员展示,并在玩家页面上使用相同的模块以显示其余的球员。如果这不是正确的方法,也可以向其他想法开放。
最终使用类别进行过滤而不是关系meta_key字段。发现关系字段存储为数组,因此无法正确比较。这是我的解决方案:
global $post;
$current_team = $post->post_name;
if ( $settings->id == 'team-roster' ) {
$args['posts_per_page'] = '50';
$args['tax_query'] =
array(
array(
'taxonomy' => 'category',
'terms' => $current_team,
'field' => 'slug',
)
);
}
return $args;