Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/10/2012, 06:45
Fernando_net
 
Fecha de Ingreso: marzo-2010
Mensajes: 191
Antigüedad: 14 años, 9 meses
Puntos: 3
Pregunta Pagina y subpagina en la barra de menú

Hola a todos compañeros.

Os escribo porqué ya tengo dolor de cabeza de tanto batallar con esto. Estaba creando una web con Wordpress (de momento en local, para hacer pruebas) y me encuentro con un detalle: Querría que al pasar el ratón encima de la barra de menú, me apareciese la subpagina que hay dentro de esa. Por ejemplo, algo parecido a que si paso el ratón por encima de "Deportes", me apareciese "Futbol", "Tennis", etc.

Se que se hace algo con jquery/javascript, incluso que hay plugins que te lo hacen, pero he probado todos habidos y por haber y nada. He probado el Multi-level-navigation plugin, por ejemplo. Y nada...

Podéis ver un ejemplo claro en la web interclinico.com. Ya veréis como si pasáis por el menú y pasáis encima de "Áreas especificas", se os despliega un menú.

Esto es lo que tengo en el functions.php, os lo pongo a ver si podéis ver algo que destaque...

Código PHP:
Ver original
  1. function art_header_page_list_filter($pages)
  2. {
  3.     global $artThemeSettings;
  4.     art_process_front($pages);
  5.     $artThemeSettings['menu.topItemIDs'] = art_topIDs($pages);
  6.     $artThemeSettings['menu.activeID'] = art_activeID($pages);
  7.     $artThemeSettings['menu.blogID'] = art_blogID($pages);
  8.     if (!$artThemeSettings['menu.showSubmenus']) art_remove_subitems($pages);
  9.     return $pages;
  10. }
  11.  
  12. function art_list_pages_filter($output)
  13. {
  14.     global $artThemeSettings;
  15.     $pref ='page-item-';
  16.     if($artThemeSettings['menu.topItemIDs'])
  17.         foreach($artThemeSettings['menu.topItemIDs'] as $id){
  18.             $output = preg_replace('~<li class="([^"]*)\b(' . $pref . $id . ')\b([^"]*)"><a ([^>]+)>([^<]*)</a>~',
  19.                 '<li class="$1$2$3"><a $4>' . $artThemeSettings['menu.topItemBegin']
  20.                     . '$5' . $artThemeSettings['menu.topItemEnd'] . '</a>', $output, 1);
  21.         }
  22.        
  23.     $frontID = null;
  24.     $blogID = null;
  25.     if('page' == get_option('show_on_front')) {
  26.         $frontID = get_option('page_on_front');
  27.         $blogID = $artThemeSettings['menu.blogID'];
  28.     }
  29.     if ($frontID)
  30.         $output = preg_replace('~<li class="([^"]*)\b(' . $pref . $frontID . ')\b([^"]*)"><a href="([^"]*)" ~',
  31.             '<li class="$1$2$3"><a href="'. get_option('home') .'" ', $output, 1);
  32.  
  33.     if ((is_home() && $blogID) || $artThemeSettings['menu.activeID'])
  34.         $output = preg_replace('~<li class="([^"]*)\b(' . $pref . (is_home() ? $blogID : $artThemeSettings['menu.activeID']) . ')\b([^"]*)"><a ~',
  35.             '<li class="$1$2$3"><a class="active" ', $output, 1);
  36.     return $output;
  37. }
  38.  
  39. function art_menu_items() {
  40.     global $artThemeSettings;
  41.     if (true === $artThemeSettings['menu.showHome'] && 'page' != get_option('show_on_front'))
  42.         echo '<li><a' . (is_home() ? ' class="active"' : '') . ' href="' . get_option('home') . '">'.$artThemeSettings['menu.topItemBegin']
  43.             . $artThemeSettings['menu.homeCaption'] . $artThemeSettings['menu.topItemEnd'] . '</a></li>';
  44.     add_action('get_pages', 'art_header_page_list_filter');
  45.     add_action('wp_list_pages', 'art_list_pages_filter');
  46.     wp_list_pages('title_li=&child_of=$blogID');
  47.     remove_action('wp_list_pages', 'art_list_pages_filter');
  48.     remove_action('get_pages', 'art_header_page_list_filter');
  49. }

Lo dicho, he probado de todo y nada... No pensé que fuera tan complicado :(

Estamos en contacto.

Saludos