About this plugin
Menu Item Types makes it easy to add links to your archive pages, titles, items without URL, paragraphs or images to your navigation menus.
You can also easily override the templates and/or create your own custom elements.
Create your own item type
php, a plugin, child theme, or your custom theme like this:
function register_my_custom_type(){
php', );
mitypes_register_type( $args ); } add_action( 'mitypes_init', 'register_my_custom_type' );
You can do more than that on $args.
php',
svg',
// Return ACF Group field array 'field-group' => [ 'key' => 'uniq_key', 'title' => 'Group Title', 'fields => [ ... ], 'location' => [ [ [ 'param' => 'mitypes', 'operator' => '==', 'value' => 'my-custom-type', ], ], ],
],
// Use callback for customize your item // you can add filter on 'mitypes_nav_menu_link_attributes' if you need 'callback' => function(){... } );
And finally, you can work in the render with some variables.
You have two variables available:
// $item is the WP_Post of the menu item, with which you can, for example, retrieve custom field data.
$id = get_field( 'acf-slug', $item->ID );
// $args is an object containing the complete configuration of the wp_nav_menu() call, // including the current menu (WP_Term), classes, IDs, wrappers, depth, walker, menu location, etc. org/reference/functions/wp_nav_menu/
There are already additional plugins.
You can also create your own elements like these plugins do:
- Menu Item Types — Button
- Menu Item Types — Action
Customize the plugin
// Disable Post Type Archive Metabox add_filter( 'mitypes_has_post_type_archive_metabox', '__return_false' );
// Disable Buildin Item types add_filter( 'mitypes_has_buildin_item_types', '__return_false' );
// Mix Buildin and Plugin Item types in the metabox add_filter( 'mitypes_mix_metabox_item_types', '__return_true' );
// Filter Supported Item types add_filter( 'mitypes_supported_types', function(){ return ['image']; } );
// Disable Nav Item Icons add_filter( 'mitypes_nav_menu_items_has_icons', '__return_false' );