#wordpress #forms #parent-child #relationship #advanced-custom-fields
#wordpress #формы #родитель-потомок #отношения #дополнительно-пользовательские поля
Вопрос:
Вот ситуация:
Я работаю над сайтом, управляемым WordPress, на котором интерфейсные пользователи должны иметь возможность создавать авторов и, попав на страницу автора, добавлять книги, написанные автором.
Для этого:
- Я создал два пользовательских класса контента (автор, книга)
- Я использовал плагин Advanced Custom Fields для создания отношения «1 ко многим» между ними. Поле — это настраиваемое поле автора, в котором перечислены книги, с которыми автор «связан»
- Я использовал пользовательский плагин Post Pro для создания двух необходимых форм. Первый для создания автора, а второй, размещенный на странице сведений об авторе, для добавления книги.
Моя проблема двойная:
- Как мне передать идентификатор автора в форму создания книги?
- Как мне при создании новой книги обновить поле отношений соответствующего автора?
Я также готов услышать, что я воспринимаю это неправильно. Ваш вклад очень приветствуется. Спасибо.
Аксель
Ответ №1:
(Я не предоставляю код в этом ответе, но могу написать его, если требуется)
Поскольку это отношение 1 ко многим между автором и книгой, вот лучший способ добиться этого —
- Создайте пользовательскую таксономию под названием «book_author».
- Создайте пользовательский тип записи «Книги» и привяжите к нему таксономию «book_author».
- Создайте пользовательскую интерфейсную форму для создания новых авторов (термины таксономии) в Book Authors (Пользовательская таксономия)
- Создайте интерфейсную форму для создания книг (пользовательская запись).
- Когда форма создания автора отправлена и автор создан, перенаправьте пользователя на форму создания книги с идентификатором автора (term_id) в url. что-то вроде http://example.com/create-book/?author_id=1
- Используйте этот идентификатор автора, чтобы связать с ним книгу. Вы можете использовать эту функцию WordPress, чтобы связать пользовательскую запись с термином https://codex.wordpress.org/Function_Reference/wp_set_post_terms