Подтвердить что ты не робот

Wordpress - получить сообщение, основанное на мета-полевом содержимом

Я разрабатываю плагин wordpress. Я использую два разных пользовательских типа сообщений, игроки и команды.

  • Игроки имеют соответствующие мета-поля: имя, фамилия и команда.
  • Команды имеют соответствующие метаполя имени команды.

При редактировании конкретной публикации team, я пытаюсь создать массив всех игроков, которые в настоящее время имеют имя команды. к их мета-полю для имени команды. Я не уверен, как это сделать. Любая помощь или статьи будут действительно полезны. Благодаря

4b9b3361

Ответ 1

Важно то, что вы запрашиваете сообщения, используя по крайней мере три критерия типа сообщения, мета-ключа и мета-значения.

Например, предположим, что ваш пользовательский тип сообщения называется "игрок". И каждый пост "игрока" имеет мета-поле с именем "player_team"

Затем вы можете запросить эти сообщения, используя что-то вроде этого:

$teamname = ""; // the player team that you're querying for

$myquery = new WP_Query( "post_type=player&meta_key=player_team&meta_value=$teamname&order=ASC" );

Ответ 2

Или используя get_posts:

$args = array(
    'meta_key' => 'player_team',
    'meta_value' => $teamname,
    'post_type' => 'player',
    'post_status' => 'any',
    'posts_per_page' => -1
);
$posts = get_posts($args);

Другой эквивалентный запрос с использованием meta_query вместо meta_key и meta_value:

$args = array(
    'meta_query' => array(
        array(
            'key' => 'player_team',
            'value' => $teamname
        )
    ),
    'post_type' => 'player',
    'posts_per_page' => -1
);
$posts = get_posts($args);