13.2.3.2 Paso 2) Crear la función de Tema que generará los ítems del menú

Necesitamos crear una función que genere código HTML para los ítems del menú. Por defecto, cada ítem tiene asignado el título de página. Esta función nos permitirá insertar código HTML propio dentro de los ítems del menú.

 

WPML todavía mantendrá la responsabilidad de generar el menú completo, incluyendo el efecto de despliegue, las secciones y todo lo que corresponda. Pero esta función nos permitirá controlar el contenido de cada ítem.

 

He aquí la función:

 

function text_for_menu($page_id, $menu_level){
  $ret = '';
  $icon = get_post_meta($page_id,'icon',true);
  $description = get_post_meta($page_id,'Description',true);
  if($menu_level==0){
    if ($icon) $ret .= '<img width="24" height="24" style="vertical-align: middle; margin:0 5px 0 5px;" src="'.$icon.'" alt="icon" />';
    $ret .= get_the_title($page_id);
    $ret .= '<br /><span>'.$description.'</span>';
  } else {
    if ($icon) $ret .= '<img width="16" height="16" style="vertical-align: middle; margin:0 5px 0 0;" src="'.$icon.'" alt="icon" />';
    $ret .= get_the_title($page_id);
  }
  return $ret;
}

Lo que realiza es:

 

  • Recupera el contenido de los campos personales denominados ‘icon’ y ‘Description’: get_post_meta($page_id,’icon’,true);
  • Verifica el nivel del ítem dentro del menú: la opción principal será ‘0’ y los ítems a desplegar ‘1’.
  • Para la opción principal, agregará un ícono de 24×24, luego el título de la página y, en última instancia, la descripción.
  • Para los ítems desplegables, incluirá un ícono de 16×16 y el título de la página.

 

Ir al contenido