amphibee / menu-item-type-maker
用于Menu Item Types插件(https://fr.wordpress.org/plugins/menu-item-types)的包装器
1.1
2022-11-24 14:24 UTC
Requires
- php: ^7.4 || ^8.0
Requires (Dev)
- phpunit/phpunit: 9.5.26
This package is auto-updated.
Last update: 2024-09-19 11:26:15 UTC
README
使用面向对象的PHP注册菜单项类型。
Menu Item Type Maker提供了一个面向对象的API,用于将菜单项类型注册到Menu Item Types插件。
安装
使用Composer,在项目根目录下要求此包。
composer require amphibee/menu-item-type-maker
下载Menu Item Types插件并将其放置在plugins
或mu-plugins
目录中。访问WordPress仪表板并激活插件。
注册菜单项类型
方法方式
使用MenuItemType::make()
函数注册新的菜单项类型。下面你可以找到一个菜单项注册的例子。目前,此包装器支持经典PHP、twig和blade视图。
默认ACF插件和WordPress经典模板
use AmphiBee\MenuItemTypeMaker\Facades\MenuItemType; MenuItemType::make('Card', 'card') ->setIcon('path/to/my/icon.svg') ->setView('parts/nav/item-types/card.php') ->setFieldGroup('path/to/acf/field-group.php');
使用Extended ACF和Blade视图
use AmphiBee\MenuItemTypeMaker\Facades\MenuItemType; use Extended\ACF\Fields\Image; use Extended\ACF\Fields\Text; MenuItemType::make('Card', 'card') ->setIcon('<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"> <path stroke-linecap="round" stroke-linejoin="round" d="M2.25 15.75l5.159-5.159a2.25 2.25 0 013.182 0l5.159 5.159m-1.5-1.5l1.409-1.409a2.25 2.25 0 013.182 0l2.909 2.909m-18 3.75h16.5a1.5 1.5 0 001.5-1.5V6a1.5 1.5 0 00-1.5-1.5H3.75A1.5 1.5 0 002.25 6v12a1.5 1.5 0 001.5 1.5zm10.5-11.25h.008v.008h-.008V8.25zm.375 0a.375.375 0 11-.75 0 .375.375 0 01.75 0z" /> </svg>') ->setView('parts/nav/item-types/card') ->setFields([ Image::make('Image'), Text::make('Title'), ]);
扩展方式
use AmphiBee\MenuItemTypeMaker\Contracts\MenuItemAbstract; use Extended\ACF\Fields\Image; use Extended\ACF\Fields\Text; class CardMenuProvider extends MenuItemAbstract { protected $label = 'Card'; protected $slug = 'card'; protected $view = 'parts/nav/item-types/card.twig'; protected $icon = '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"> <path stroke-linecap="round" stroke-linejoin="round" d="M2.25 15.75l5.159-5.159a2.25 2.25 0 013.182 0l5.159 5.159m-1.5-1.5l1.409-1.409a2.25 2.25 0 013.182 0l2.909 2.909m-18 3.75h16.5a1.5 1.5 0 001.5-1.5V6a1.5 1.5 0 00-1.5-1.5H3.75A1.5 1.5 0 002.25 6v12a1.5 1.5 0 001.5 1.5zm10.5-11.25h.008v.008h-.008V8.25zm.375 0a.375.375 0 11-.75 0 .375.375 0 01.75 0z" /> </svg>'; protected function fields(): array { return [ Image::make('Image'), Text::make('Title'), ]; } }