2017-08-27 52 views
0
$lessons_id = get_post_meta($post->ID, '_course-lessons-1', true); 
$posts = get_posts(array('post_type' => 'courses', 'post__in' => array($lessons_id))); 
foreach ($posts as $post) : setup_postdata($post); 
echo get_the_title(); 
endforeach; 
wp_reset_postdata(); 

如果你把post_in變量不起作用,它只返回第一個值。但得到'post__in' => array (985,987,254)的作品。我已經迴應了這個變量,輸出和985,987,254完全一樣。get_posts不工作post_in

你能幫忙嗎?

回答

0

我建議你使用WP_Query而不是get_posts,您可以使用post__in像這樣:

$posts = new WP_Query(array(
    'post_type' => 'courses', 
    'post__in' => $lessons_id, 
)); 

牢記$lessons_id變量應該是一個數組,像這樣:

$lessons_id = array(985, 987, 254); 
0

唐不行!

我做了一個例子來測試,但它不工作,只返回第一個ID的值($ lessons_id變量的回聲987984875985

我的代碼:

        $lessons_id = get_post_meta($post->ID, '_course-lessons-1', true); 
           $the_query = new WP_Query(array(
            'post_type' => 'courses', 
            'post__in' => array($lessons_id), 
           )); 

           if ($the_query->have_posts()) : 
            while ($the_query->have_posts()) : $the_query->the_post(); 
            echo get_the_title(); 
            endwhile; 
            wp_reset_postdata(); 
           endif; 
0

您正在使用true作爲第三個參數爲get_post_meta這意味着你的返回值將始終是一個值,而不是一個數組嘗試使用,以取代第一行:

$lessons_id = get_post_meta($post->ID, '_course-lessons-1', false);