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



我正在使用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;

最新更新