Как отфильтровать запрос по мета-ключам страницы и / или заголовку? - PullRequest
0 голосов
/ 08 мая 2019

Я использую Beaver Builder с WordPress и использую Advanced Posts для отображения моих пользовательских типов записей. У меня есть 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 голосов
/ 08 мая 2019

Завершено использование категорий для фильтрации вместо поля 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...