Je suis en train de stocker les résultats dans une variable d'une table de base de données comme ceci:
$followed = $wpdb->get_results("SELECT user_id1 FROM wp_um_followers WHERE user_id2 = 1", ARRAY_A);
Cela retourne un tableau comme ceci:
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 ) )
Maintenant, j'aimerais configurer une nouvelle requête en utilisant les valeurs user_id1 du tableau ci-dessus en tant que valeurs pour une requête à plusieurs auteurs sur un type d'article personnalisé.
Quelque chose comme ça :
$get_these_posts = array( 'post_type' => 'stream', 'post_status' => 'publish', 'posts_per_page' => '10', 'paged' => $paged, ( array( 'author__in' => array( $followed ) ) ) );
Ce qui ne devrait renvoyer que des publications d’auteurs figurant dans la requête originale stockée dans la variable $ suivie.
Mais cela ne fonctionne évidemment pas car je ne cible pas la bonne partie du tableau [user_id1] et je ne sais pas comment.
Je ne suis même pas sûr que la deuxième requête est correctement configurée, ou si elle peut effectivement être configurée de cette manière?
Toute aide est la bienvenue.
Vous devez passer author__in
en tant que tableau, mais ce n'est pas ce que vous faites avec ceci: ( array( 'author__in' => array( $followed ) ) )
. Vous créez un ensemble étrange de tableaux imbriqués. WP_Query
ne saura pas quoi en faire. Une version très simplifiée devrait fonctionner:
$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
);
Remarquez que j'ai utilisé get_col()
. Cela retournera un simple tableau d'identifiants.