当前位置: 首页 > 知识库问答 >
问题:

WordPress-为每个用户获取帖子

欧阳骏俊
2023-03-14

对于一个项目与学生我使用WordPress木材(TWIG)ACF

在这个项目中,我创建了3种自定义帖子类型:论文主题强加主题自由

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

但是现在我想显示一个列表,上面有每个学生的名字和他们的3篇文章。

像这样的列表:

尼古拉斯·马普尔

  • 自定义帖子类型标题学位论文自定义帖子类型名称图像(ACF字段)
  • 自定义帖子类型的标题主题强加自定义帖子类型名称图像(ACF字段)
  • 自定义帖子类型的标题无主题自定义帖子类型名称图像(ACF字段)

布兰达·史密斯

  • 自定义帖子类型标题学位论文自定义帖子类型名称图像(ACF字段)
  • 自定义帖子类型的标题主题强加自定义帖子类型名称图像(ACF字段)
  • 自定义帖子类型的标题无主题自定义帖子类型名称图像(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(),它希望参数1是字符串和一个数组,但包含所有帖子,而不是按学生分组

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

随着get_posts在Foreach我得到了帖子分组。但是我没有每组学生的名字。

$students = get_users( array(
    'role'    => 'student',
    'orderby' => 'rand',
    'has_published_posts' => true
));

$students_posts = array();

foreach ($students as $student) {
    $students_posts[] = get_posts( array(
        'author' => $student->ID,
        'post_type' => array('dissertation', 'subject-imposed', 'subject-free')
    ));
}

$context['students_posts'] = $students_posts;


共有1个答案

宓英哲
2023-03-14

您可以使用get\u user\u meta()将学生的姓名包含到数组中:

foreach ($students as $student) {
    // Get the first name from user meta.
    $first_name = get_user_meta( $student->ID, 'first_name');
    // Get the last name from user meta.
    $last_name = get_user_meta( $student->ID, 'last_name');
    // Add a new array key for "name". The first name and last name return as arrays, so we use [0] to get the first index.
    $students_posts['name'] = $first_name[0] . ' ' . $last_name[0];
    $students_posts[] = get_posts( array(
        'author' => $student->ID,
        'post_type' => array('dissertation', 'subject-imposed', 'subject-free')
    ));
}

$context['students_posts'] = $students_posts;
 类似资料:
  • 我试图在一个页面上显示来自两个类别的帖子(6) 我将如何将类别ID“7”添加到该代码中,以使所有内容都像上面解释的那样工作?提前谢谢!

  • 我找了很多,但没有找到任何答案,所以我希望你能帮助我! 我有三个表:post、users和post\U users。Post_users包含两列:user_id和Post_id。 我需要得到一个有口才的用户的所有帖子。有什么想法吗? 非常感谢你! (如果这个问题已经存在,我很抱歉,但我还没有找到它)

  • 问题内容: 我想查询存储在MySQL数据库中的Wordpress数据,以便获得带有列的结果: post_id category tags 预期产量: 这是我尝试过的: 结果,我得到了想要的列以及期望的内容,但是 我只有一行 。 我究竟做错了什么? 问题答案: 如评论中所述,我包括一个聚合函数,但没有“ group by”子句。 现在,这似乎可行(只需添加一行即可): 谢谢

  • 我正在开发一个wordpress插件。我使用两种不同的自定义帖子类型,球员和球队。 玩家有相关的元字段:名字、姓氏和团队。 团队有相关的团队名称元字段。 在编辑一个特定的团队帖子时,我试图将当前拥有该团队名称的所有球员的数组发布到他们的元字段中以获取团队名称。我不知道怎么做。任何帮助或文章都会很有帮助。谢啦

  • 我想我的代码中的“admin-cli”是错误的,但这是master域中的客户端ID。这是不是身份证错了?如何使请求使特定用户的所有角色工作?

  • 问题内容: 我有一个包含以下两个表的数据库, USERS,POSTS 我正在寻找一种方法来获取用户拥有的帖子数。 我尝试了以下SQL命令的许多变体,但均未成功。与其显示单个用户的帖子数,不如显示一行包含所有帖子的数。 最后我想要这样的东西 问题答案: 弄清楚了。

  • 问题内容: 首先,我认为这是一个漫长的尝试,但希望有人可以提供帮助。 为了解释当前情况,目前,我有一个自定义插件,可以获取有关用户及其最新4条帖子的各种信息。 我也在使用WPBook插件(所以这是在facebook上,只是一个典型的wordpress网站) 好的,这是我的代码,它为用户抓取了4条最新帖子: 我尝试按照本教程进行操作,但没有使用单独的插件,而是将代码放在了现有的插件中,但现在页面无法

  • 问题内容: 我有一张桌子上有用户帖子。我需要显示每天每位用户从1到最多n条帖子。 例子: 我需要一个查询,例如返回每个用户每天最多2条帖子的查询: 我尝试使用GROUP和HAVING,但是我仅获得前n个记录,而不是每个用户每天的前n个记录: 问题答案: 试试这个糟糕的SQL代码:) 结果: 在这里摆弄。 我认为如果按日期降序排序会更合适,因为实际上是最接近当前日期的前2位。