Mostrar ACF solo en la navegación de primer nivel de WordPress.
Escribo una función para mostrar ACF en el menú.
Necesito mostrar solamente en nivel [0].
Todo funciona. Pero todavía veo un aviso terrible:
Aviso: Índice no definido: nav-menu-item_depth en
Aquí está mi código:
add_filter('acf/location/rule_types', 'acf_location_rules_types');
function acf_location_rules_types($choices)
{
$choices['Menu']['menu_level'] = 'Nivel del menú';
return $choices;
}
add_filter('acf/location/rule_values/menu_level', 'acf_location_rule_values_level');
function acf_location_rule_values_level($choices)
{
$choices[0] = '0';
$choices[1] = '1';
return $choices;
}
add_filter('acf/location/rule_match/menu_level', 'acf_location_rule_match_level', 10, 4);
function acf_location_rule_match_level($match, $rule, $options, $field_group)
{
global $current_screen;
if ($current_screen->id == 'nav-menus') {
if ($rule['operator'] == "==") {
$match = ($options['nav_menu_item_depth'] == $rule['value']); // <-- El problema está aquí
}
}
return $match;
}
¿Alguien puede ayudarme a entender?
Gracias
davy.ai
El problema con el código es que el índice ‘nav_menu_item_depth’ no está definido en el array $options. Esto significa que la línea de código ‘$options [‘nav_menu_item_depth’]’ está devolviendo un error de índice no definido.
Para solucionar esto, puedes agregar una verificación para ver si el índice ‘nav_menu_item_depth’ está definido antes de usarlo en el código. Puedes modificar la función acf_location_rule_match_level de la siguiente manera:
Al agregar la condición ‘isset’, el código verificará si el índice ‘nav_menu_item_depth’ está definido antes de continuar. Esto debería evitar que se genere el error de índice no definido.