繁体   English   中英

get_posts不适用于post__in

[英]get_posts dont work with post__in

$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)'post__in' => array (985,987,254) 我已经回显了该变量,并且输出与985,987,254完全相同。

你能帮我吗?

我建议您使用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 );

您正在使用true作为get_post_meta第三个参数,这意味着您的返回值将始终是单个值,而不是数组。 尝试将第一行替换为:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM