Для проекта со студентами я использую WordPress с Timber (TWIG) + ACF
Для этого проекта я создал 3 пользовательских типа сообщений: dissertation
, subject-imposed
и subject-free
Каждый учащийся может создать только ОДИН пост по индивидуальному типу поста (я создал для этого ограничение).
Но теперь я хотел бы вывести список с именем каждого ученика и их 3 постами.
Список вроде этого:
Nicolas Mapple
- Название произвольного типа сообщения
dissertation
+ название произвольного типа сообщения + изображение (поле ACF) - Название произвольного типа сообщения
subject-imposed
+ название произвольного типа сообщения + изображение (поле ACF) - Название произвольного типа сообщения
subject-free
+ название произвольного типа сообщения + изображение (поле ACF)
Бренда Смит
- Название произвольного типа сообщения
dissertation
+ название произвольного типа сообщения + изображение (поле ACF) - Название произвольного типа сообщения
subject-imposed
+ название произвольного типа сообщения + изображение (поле ACF) - Название произвольного типа сообщения
subject-free
+ произвольное сообщение введите имя + изображение (поле ACF)
Для начала я попытался получить идентификатор каждого студента:
$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;
}
После, чтобы получить все сообщения с этого идентификатора:
$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
и массив, но со всеми сообщениями, не сгруппированными по студентам
Могу я получить помощь? Как сгруппировать сообщения по студентам?
ОБНОВЛЕНИЕ - лучше, но не полное (решение @disinfor):
С помощью 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;
У меня есть такой массив, мне бы хотелось, чтобы имя ученика в каждой группе: