私はしばらく前からScribuのPosts to Postsプラグインを使用してきましたが、それは私によく役立ちました。私は完全なwikiとissueのリストを読んだことがありますが、each_connected
を取得している間に多くのユーザーをループするための明確な方法があるならば、決定的な答えを見つけることができません。
によると、このwikiのエントリ は、ループの内側に接続するためのより速い方法は、each_connected
を使うことです。ループの。意味があり、さまざまな型のposts
に最適です。しかし、wp_query
とwp_user_query
の間の類似点にもかかわらず、この種のことはうまくいきません(しかし、代わりにwp_query
にいたならうまくいくでしょう):
$players = new WP_User_Query( array( 'role' => 'subscriber' ) );
p2p_type( 'player_report_to_user' )->each_connected( $players );
このような接続をforeach($players as $player)
内で実行すると...
$reports = get_posts( array(
'connected_type' => 'player_report_to_user',
'connected_items' => $player->ID,
'suppress_filters' => false,
'nopaging' => true
) );
これは絶対に機能しますが、私は200人以上のユーザーを処理しているので非常に非効率的です。
だから、問題は、each_connected()
をwp_user_query()
に適用して、何百もの追加クエリを行わないようにする方法を誰かが知っているかということです。
答えは「いいえ」のようです。これによると: https://github.com/scribu/wp-posts-to-posts/issues/374 - だから方法があるかもしれません自分でSQLを書くには?私はそれでかなりぐらつきます。
いいえ、それはここに示されるように、p2pプラグインへの修正なしでは不可能です:
https://github.com/scribu/wp-posts-to-posts/issues/374
関連するコードはこちらです。
https://github.com/scribu/wp-posts-to-posts/blob/master/core/core/connection-type.php#L374