我目前正在将结果存储在db表中的一个变量中,如下所示:
$followed = $wpdb->get_results("SELECT user_id1 FROM wp_um_followers WHERE user_id2 = 1", ARRAY_A);
这将返回如下数组:
Array ( [0] => Array ( [user_id1] => 144 ) [1] => Array ( [user_id1] => 50 ) [2] => Array ( [user_id1] => 42 ) [3] => Array ( [user_id1] => 829 ) [4] => Array ( [user_id1] => 826 ) [5] => Array ( [user_id1] => 822 ) [6] => Array ( [user_id1] => 823 ) [7] => Array ( [user_id1] => 821 ) [8] => Array ( [user_id1] => 820 ) [9] => Array ( [user_id1] => 819 ) [10] => Array ( [user_id1] => 818 ) [11] => Array ( [user_id1] => 816 ) [12] => Array ( [user_id1] => 817 ) [13] => Array ( [user_id1] => 814 ) [14] => Array ( [user_id1] => 815 ) [15] => Array ( [user_id1] => 15 ) [16] => Array ( [user_id1] => 93 ) [17] => Array ( [user_id1] => 844 ) )
现在,我想使用上面数组中的user\\u id1值作为自定义帖子类型上的多作者查询的值来设置一个新查询。
类似这样:
$get_these_posts = array( \'post_type\' => \'stream\', \'post_status\' => \'publish\', \'posts_per_page\' => \'10\', \'paged\' => $paged, ( array( \'author__in\' => array( $followed ) ) ) );
它应该只返回出现在$followed变量中的原始查询中的作者的帖子。
但这显然不起作用,因为我没有针对阵列的正确部分[user\\u id1],而且我不知道如何定位。
我甚至不确定第二个查询是否设置正确,或者是否确实可以用这种方式设置?
任何帮助都将不胜感激。
最合适的回答,由SO网友:s_ha_dum 整理而成
你需要通过author__in
作为一个数组,但这不是您要做的:( array( \'author__in\' => array( $followed ) ) )
. 您正在创建一组奇数的嵌套数组。WP_Query
都不知道该怎么办。简化版应该可以:
$followed = $wpdb->get_col("
SELECT user_id1
FROM wp_um_followers
WHERE user_id2 = 1"
);
$get_these_posts = array(
\'post_type\' => \'stream\',
\'post_status\' => \'publish\',
\'posts_per_page\' => \'10\',
\'paged\' => $paged,
\'author__in\' => $followed
);
注意我使用的
get_col()
. 这将返回一个简单的ID数组。