web-dev-qa-db-ja.com

Wordpress-メタフィールドの内容に基づいて投稿を取得

wordpressプラグインを開発しています。2つの異なるカスタム投稿タイプ、playersteamsを使用しています。

  • Playersには、関連するメタフィールドがあります:名、姓、およびチーム。
  • Teamsには、チーム名の関連メタフィールドがあります。

特定のteam投稿を編集しているときに、現在team'sがメタに投稿されているすべてのplayersの配列を取得しようとしています。チーム名のフィールド。これを行う方法がわかりません。どんな助けや記事も本当に役立つでしょう。ありがとう

26
dremme

重要なことは、少なくとも投稿タイプ、メタキー、メタ値の3つの基準を使用して投稿をクエリしていることです。

たとえば、カスタム投稿タイプが単に「player」と呼ばれ、各「player」投稿に「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" );
24
jn_pdx

または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);
56
colllin