如何根据页面元键和/或标题过滤查询?

时间:2019-05-07 23:22:30

标签: php wordpress

我正在将Beaver Builder与WordPress配合使用,并且正在使用“高级帖子”显示我的自定义帖子类型。我有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; 

我正在尝试与页塞进行比较,它与meta_key中存储的值相同。

我希望每个团队页面都可以显示团队中的球员,并希望在球员页面上使用相同的模块来显示其他球员。如果这不是正确的方法,那么也要开放其他想法。

1 个答案:

答案 0 :(得分:0)

最终使用类别而不是关系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;