Wordpress - получить сообщение, основанное на мета-полевом содержимом
Я разрабатываю плагин wordpress. Я использую два разных пользовательских типа сообщений, игроки и команды.
- Игроки имеют соответствующие мета-поля: имя, фамилия и команда.
- Команды имеют соответствующие метаполя имени команды.
При редактировании конкретной публикации team, я пытаюсь создать массив всех игроков, которые в настоящее время имеют имя команды. к их мета-полю для имени команды. Я не уверен, как это сделать. Любая помощь или статьи будут действительно полезны. Благодаря
Ответы
Ответ 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);