Вопрос или проблема
Могу ли я получить роль текущего пользователя в современном 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;
Объяснение кода:
-
useSelect: Мы используем хук
useSelect
, чтобы получить объект текущего пользователя с помощьюselect('core').getCurrentUser()
. Этот метод возвращает объект, содержащий информацию о текущем пользователе. -
Проверка на наличие текущего пользователя: Важно убедиться, что объект
currentUser
доступен. Если объект не загружен, мы выводим сообщение "Загрузка…". -
Получение ролей: Из объекта
currentUser
мы извлекаем массивroles
, который содержит роли текущего пользователя. Если по какой-то причине роли отсутствуют, используется пустой массив. - Отображение ролей: Мы отображаем список ролей, используя метод
map
.
Таким образом, данный компонент корректно получает и отображает роли текущего пользователя в WordPress, используя React. Если у вас есть дополнительные вопросы или необходимо более детальное объяснение, не стесняйтесь задавать их!