Custom Fields For Menu Items
Introduction
Some menus may require custom fields, if this is the case for your menu then you can query the custom fields (meta fields) by using filters.
Filter Top Level Items
<?php
use WPN\Menu;
add_filter( 'wpn_menu_fields', function ( array $args, int $id ): array {
$args['subtitle'] = get_post_meta( $id, 'my_subtitle_field' );
// Advanced Custom Fields Query
// $args['subtitle'] = get_field( 'my_subtitle_field', $id );
return $args;
}, 10, 2 );
$menu = new Menu( 'menu-id' );
echo $menu->as_array();
Filter Child Items
<?php
use WPN\Menu;
add_filter( 'wpn_submenu_fields', function ( array $args, int $id ): array {
$args['subtitle'] = get_post_meta( $id, 'my_subtitle_field' );
// Advanced Custom Fields Query
// $args['subtitle'] = get_field( 'my_subtitle_field', $id );
return $args;
}, 10, 2 );
$menu = new Menu( 'menu-id' );
echo $menu->as_array();