Get posts for each user

时间:2020-06-18 作者:Jandon

对于学生项目,我使用WordPress和木材(树枝)+ACF

在这个项目中,我创建了3种自定义帖子类型:dissertation, subject-imposedsubject-free

每个学生只能按自定义帖子类型创建一篇帖子(我为此创建了一个限制)。

但现在我想显示一个列表,列出每个学生的名字和他们的3篇帖子。

这样的列表:

Nicolas Mapple

<自定义职位类型的标题dissertation + 自定义帖子类型名称+图像(ACF字段)
  • 自定义帖子类型的标题subject-imposed + 自定义帖子类型名称+图像(ACF字段)
  • 自定义帖子类型的标题subject-free + 自定义贴子类型名称+图像(ACF字段)
  • Brenda Smith

    <自定义职位类型的标题dissertation + 自定义帖子类型名称+图像(ACF字段)
  • 自定义帖子类型的标题subject-imposed + 自定义帖子类型名称+图像(ACF字段)
  • 自定义帖子类型的标题subject-free + 自定义帖子类型名称+图像(ACF字段)
  • 开始时,我尝试获取每个学生的ID:

    $students = get_users( array(
        \'role\'    => \'student\',
        \'orderby\' => \'user_nicename\',
        \'order\'   => \'ASC\'
        \'has_published_posts\' => true
    ));
    
    $students_id = array();
    
    foreach ($students as $student) {
        $students_id[] = $student->ID;
    }
    
    之后,从以下ID获取所有帖子:

    $get_posts_students = get_posts( array(
        \'author\' => $students_id,
        \'post_type\' => array(\'dissertation\', \'subject-imposed\', \'subject-free\')
    ));
    
    $context[\'list_of_students\'] = $get_posts_students;
    
    我发现了错误urldecode() expects parameter 1 to be string 和一个数组,但包含所有帖子,不按学生分组

    能帮我个忙吗?如何按学生分组帖子?

    1 个回复
    最合适的回答,由SO网友:Pat J 整理而成

    根据WP_Query::parse_args docs(这是解析$args 你要传给get_posts()), 这个$author 参数必须是int 或astring (以逗号分隔的ID列表)。

    但你也需要按照每个学生分组设置,所以我建议:使用数组存储每个学生的帖子,然后在获得所有帖子后将其打印出来。

    $students = get_users( array(
        \'role\'    => \'student\',
        \'orderby\' => \'user_nicename\',
        \'order\'   => \'ASC\'
        \'has_published_posts\' => true
    ));
    
    $students_posts = array();
    
    foreach ($students as $student) {
        $get_posts_student = get_posts( array(
            \'author\' => $student->ID,
            \'post_type\' => array(\'dissertation\', \'subject-imposed\', \'subject-free\')
        ));
        $students_posts[ $student->ID ] = array(
            \'name\'  => $student->user_nicename,
            \'posts\' => $get_posts_student,
        );
    }
    
    这将为您提供一组学生及其帖子,然后您可以循环浏览并显示这些帖子。

    相关推荐