【发布时间】:2012-06-17 03:52:24
【问题描述】:
我正在开发一个 wordpress 插件。我使用了两种不同的自定义帖子类型,玩家和团队。
- 玩家具有相关的元字段:名字、姓氏和团队。
- Teams 具有团队名称的相关元字段。
在编辑特定团队帖子时,我正在尝试发布当前拥有该团队名称的所有玩家的数组到他们的元字段以获取团队名称。我不知道该怎么做。任何帮助或文章都会非常有帮助。谢谢
【问题讨论】:
我正在开发一个 wordpress 插件。我使用了两种不同的自定义帖子类型,玩家和团队。
在编辑特定团队帖子时,我正在尝试发布当前拥有该团队名称的所有玩家的数组到他们的元字段以获取团队名称。我不知道该怎么做。任何帮助或文章都会非常有帮助。谢谢
【问题讨论】:
或者使用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);
【讨论】:
'posts_per_page' => -1 将检索所有匹配的帖子,则不需要999999。
nopaging => true。
重要的是,您至少要使用帖子类型、元键和元值这三个条件来查询帖子。
例如,假设您的自定义帖子类型仅称为“玩家”,并且每个“玩家”帖子都附加了一个名为“player_team”的元字段
然后您可以使用以下方式查询这些帖子:
$teamname = ""; // the player's team that you're querying for
$myquery = new WP_Query( "post_type=player&meta_key=player_team&meta_value=$teamname&order=ASC" );
【讨论】:
WP_Query 或get_posts 而不是query_posts - 请参阅the Codex
posts_per_page 参数,以确保你让所有玩家回来(或者注意它,无论如何,所以提问者知道这种可能性) .