Компонент PluginSidebarMoreMenuItem
в WordPress позволяет разработчикам добавлять настраиваемые элементы в дополнительное меню панели параметров. Это предоставляет возможность создавать новые панели или расширять функциональность редактора, не влияя на основной интерфейс.
Описание и использование PluginSidebarMoreMenuItem
Элемент PluginSidebarMoreMenuItem
используется для интеграции пользовательских панелей в меню параметров. Когда панель (side panel) регистрируется с помощью PluginSidebar
, элемент меню генерируется автоматически, используя название, переданное через свойство title
. Однако, если необходимо изменить текст меню, это можно сделать с помощью данного компонента.
Пример использования
Этот пример показывает, как можно настроить текст для элемента меню, а также создать пользовательскую панель с разными элементами управления.
import { __ } from '@wordpress/i18n';
import { PluginSidebar, PluginSidebarMoreMenuItem } from '@wordpress/edit-post';
import { PanelBody, Button, TextControl } from '@wordpress/components';
import { registerPlugin } from '@wordpress/plugins';
import { useState } from '@wordpress/element';
const CustomSidebarComponent = () => {
const [inputValue, setInputValue] = useState('');
return (
<>
<PluginSidebarMoreMenuItem
target="custom-sidebar"
>
{ __('My Custom Menu Item') }
</PluginSidebarMoreMenuItem>
<PluginSidebar
name="custom-sidebar"
title={ __('Custom Sidebar') }
icon="admin-plugins"
>
<PanelBody title={ __('Custom Controls') }>
<TextControl
label={ __('Custom Input') }
value={inputValue}
onChange={(value) => setInputValue(value)}
/>
<Button isPrimary onClick={() => alert(inputValue)}>
{ __('Alert Input Value') }
</Button>
</PanelBody>
</PluginSidebar>
</>
);
};
registerPlugin('custom-sidebar-plugin', {
render: CustomSidebarComponent,
});
При использовании
registerPlugin
важно указать уникальное имя плагина, чтобы избежать конфликтов с другими плагинами. Также убедитесь, что все импортируемые модули присутствуют в вашем проекте.
Заключение
Компонент PluginSidebarMoreMenuItem
предоставляет гибкость в разработке интерфейсов WordPress, позволяя интегрировать настраиваемые элементы управления и панели в меню редактора. Это особенно полезно для улучшения пользовательского опыта и интеграции новых функциональностей без модификации основного кода.