Добавьте пользователей WordPress к пользовательскому типу записи

Вопрос или проблема

Я создал пользовательский тип записи под названием Группы. Я хотел бы предоставить возможность добавлять пользователей в эти группы на странице редактирования группы. Любая помощь будет оценена, спасибо.
P.S: Я думал использовать плагин Post-to-Post, но не уверен, будет ли это правильным решением.

Вы можете использовать плагин ACF для https://wordpress.org/plugins/advanced-custom-fields/.

Необходимо выполнить следующие шаги:

  1. Скачайте и установите плагин ACF.
  2. Нажмите на ссылку Пользовательские поля в левом меню.
  3. Добавьте пользовательское поле как:
    введите описание изображения здесь
  4. Выберите пользовательское поле и опубликуйте его:
    введите описание изображения здесь
  5. Теперь добавьте этот код в файл functions.php как:
function acf_load_color_field_choices( $field ) {    
    // сбросить выбор
    $field['choices'] = array();
  $blogusers = get_users();
  $field['choices'][0] = "Выбрать пользователя";
  foreach($blogusers as $user){
            // добавить к выбору
            $field['choices'][ $user->ID ] = $user->display_name;
    }
    // вернуть поле
    return $field;    
}
add_filter('acf/load_field/name=select_user_for_post', 'acf_load_color_field_choices');
  1. Теперь, если вы создадите запись Группы, вы увидите список пользователей в выпадающем списке как:

введите описание изображения здесь

Важные детали:

  1. получить список пользователей

  2. Динамически заполнять выбор полей

.

Ответ или решение

Как добавить пользователей WordPress к пользовательскому типу записи

Создание пользовательского типа записи, такого как "Группы", — это только первый шаг в разработке функционала вашего сайта на WordPress. Мы будем рассматривать, как интегрировать возможность добавления пользователей к этим группам на странице редактирования записей этого пользовательского типа.

Выбор подходящего решения

Вы упомянули, что рассматриваете использование плагина Post-to-Post. Однако более оптимальным и гибким вариантом в данном случае будет использование плагина Advanced Custom Fields (ACF). Этот плагин предоставляет мощные возможности для добавления настраиваемых полей и позволяет динамически загружать данные, что делает его идеальным для вашего случая.

Шаги настройки

Чтобы успешно интегрировать пользователей в ваш пользовательский тип записи "Группы", выполните следующие шаги:

1. Установка плагина ACF

  • Перейдите в админку вашего сайта WordPress.
  • Зайдите в раздел Плагины > Добавить новый.
  • Найдите плагин Advanced Custom Fields и установите его.

2. Создание пользовательского поля

  • После активации плагина перейдите в раздел Custom Fields в левой боковой панели.
  • Нажмите на кнопку Добавить поле для создания нового пользовательского поля.
  • Вам нужно создать выбор для пользователей. В поле "Тип" выберите Выбор (Select).

3. Настройка пользовательского поля

  • Назовите поле, например, select_user_for_post.
  • Внутри настроек поля, под заголовком Choices, оставьте пустым, так как мы будем динамически генерировать его значения.

4. Публикация поля

  • Свяжите созданное поле с вашим пользовательским типом записи "Группы", выбрав его в Location Rules (Правила расположения).
  • Сохраните настройки.

5. Добавление кода в файл functions.php

Вам необходимо добавить следующий код в файл functions.php вашей темы, чтобы динамически загружать список пользователей:

function acf_load_color_field_choices( $field ) {
    // Сбросить выборы
    $field['choices'] = array();
    $blogusers = get_users();
    $field['choices'][0] = "Выберите пользователя";
    foreach($blogusers as $user){
        // Добавить пользователей в выбор
        $field['choices'][ $user->ID ] = $user->display_name;
    }
    // Вернуть поля
    return $field;    
}
add_filter('acf/load_field/name=select_user_for_post', 'acf_load_color_field_choices');

6. Тестирование созданного поля

Теперь, когда вы создаете новый пост типа "Группы", вы должны увидеть выпадающий список пользователей, который позволяет вам выбирать их.

Важные детали

  1. Получение списка пользователей: Используйте функцию get_users(), чтобы получить всех пользователей сайта.
  2. Динамическое наполнение выбора: Подробно о том, как динамически заполнять выбор полей можно узнать в документации ACF – Динамически заполнять выбор полей ACF.

Заключение

Этот подход обеспечит вам простое и эффективное решение для управления пользователями в рамках вашего пользовательского типа записи "Группы". Использование ACF не только упростит процесс, но и позволит вам без особых усилий дорабатывать функционал в будущем. Вы можете продолжить экспериментировать с другими функциями ACF, чтобы улучшить взаимодействие с пользователями.

Оцените материал
Добавить комментарий

Капча загружается...