php - How to pass the data dynamically to post__in
I have below code on my page
$speakersselected = get_post_meta($post->ID, 'speakersselected', true);
print_r($speakersselected); //getting output (587,585)
$s_post = array(
'showposts' => 80,
'post_type' => 'speaker',
'post_status' => 'publish',
'post__in' =>$speakersselected,
//'post__in' =>array($speakersselected),
//'post__in' => array(587,585),
);
echo"<pre>";
print_r($s_post);
Output
if I use 'post__in' =>$speakersselected
then I am getting below output
Array
(
[showposts] => 80
[post_type] => speaker
[post_status] => publish
[post__in] => 587,585
)
if i use 'post__in' =>array($speakersselected)
then getting below output
Array
(
[showposts] => 80
[post_type] => speaker
[post_status] => publish
[post__in] => Array
(
[0] => 587,585
)
)
Both the output not working for me
if i add the static data 'post__in' => array(587,585)
then it's working for me
Array
(
[showposts] => 80
[post_type] => speaker
[post_status] => publish
[post__in] => Array
(
[0] => 587
[1] => 585
)
)
Any idea how to send dynamic data in post__in?
Answer
Solution:
You are getting strings in $speakersselected
and 'post__in'
attribute need the value in the array format. So you need to convert the string to an array then it will work.
$speakersselected = get_post_meta($post->ID, 'speakersselected', true);
$speakersselected = explode(',',$speakersselected);
$s_post = array(
'showposts' => 80,
'post_type' => 'speaker',
'post_status' => 'publish',
'post__in' => $speakersselected,
);
Source