Могу ли я получить роль текущего пользователя в современном WordPress React?

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

Могу ли я получить роль текущего пользователя в современном WordPress React?

  const { currentUser } = useSelect(
        ( select ) => ( {
            currentUser: select("core").getCurrentUser() 
        } ),
        []
    );

Это дает мне объект пользователя с идентификатором пользователя. Но без роли. Как мне получить роль?

Спасибо

Вы можете достичь этого с помощью хука useSelect и select('core').getCurrentUser(). Вот пример компонента для вас.

import { useSelect } from '@wordpress/data';

const CurrentUserComponent = () => {
    const { currentUser } = useSelect((select) => ({
        currentUser: select('core').getCurrentUser(),
    }), []);

    // Здесь мы проверяем, доступен ли currentUser или нет.
    if (!currentUser) {
        return <p>Загрузка...</p>;
    }

    // Здесь мы получаем роли.
    const roles = currentUser.roles || [];

    return (
        <div>
            <h2>Роли текущего пользователя:</h2>
            <ul>
                {roles.map(role => (
                    <li key={role}>{role}</li>
                ))}
            </ul>
        </div>
    );
};

export default CurrentUserComponent;

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

Конечно! Вы можете получить роли текущего пользователя в современном WordPress с помощью хука useSelect из библиотеки @wordpress/data. Вот полный пример компонента, который покажет вам, как это сделать:

import { useSelect } from '@wordpress/data';

const CurrentUserComponent = () => {
    const { currentUser } = useSelect((select) => ({
        currentUser: select('core').getCurrentUser(),
    }), []);

    // Проверяем, доступен ли объект текущего пользователя
    if (!currentUser) {
        return <p>Загрузка...</p>;
    }

    // Получаем роли текущего пользователя
    const roles = currentUser.roles || [];

    return (
        <div>
            <h2>Роли текущего пользователя:</h2>
            <ul>
                {roles.map(role => (
                    <li key={role}>{role}</li>
                ))}
            </ul>
        </div>
    );
};

export default CurrentUserComponent;

Объяснение кода:

  1. useSelect: Мы используем хук useSelect, чтобы получить объект текущего пользователя с помощью select('core').getCurrentUser(). Этот метод возвращает объект, содержащий информацию о текущем пользователе.

  2. Проверка на наличие текущего пользователя: Важно убедиться, что объект currentUser доступен. Если объект не загружен, мы выводим сообщение "Загрузка…".

  3. Получение ролей: Из объекта currentUser мы извлекаем массив roles, который содержит роли текущего пользователя. Если по какой-то причине роли отсутствуют, используется пустой массив.

  4. Отображение ролей: Мы отображаем список ролей, используя метод map.

Таким образом, данный компонент корректно получает и отображает роли текущего пользователя в WordPress, используя React. Если у вас есть дополнительные вопросы или необходимо более детальное объяснение, не стесняйтесь задавать их!

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

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