Menus en WP

0 views
Skip to first unread message

jaume op

unread,
Oct 28, 2010, 3:40:57 AM10/28/10
to php-o...@googlegroups.com
Buenas. He creado 5 menus personalizdos en WP 3.0, que coloco en la zona de cabecera. Me gustaria que al clickar en las paginas de cada uno de ellos su propio menu apareciera en su pagina.

Podria hacerlo con:

<?php if ( is_page(‘1′) || ('2') || ('3')  || ('4')  || ('5')  ) {
//menu-uno
}

elseif (is_page('6') || ('7' || ('8') || ('9' )) {
//menu-dos
}

elseif (is_page('10') || ('11' || ('12') || ('13' )) {
//codigo para estas páginas
}
else{
}

 ?>

Pero claro al añadir paginas habria que retocar manualmente el codigo. Habria la opcion de hacerlo por el class de los propios menus, algo como

is_menu ( 'class de menu' ) 0 is_list_menu( 'class de menu'')




Saludos
Jaume

 

Félix Horro Pita

unread,
Oct 28, 2010, 4:44:54 AM10/28/10
to php-o...@googlegroups.com
No sé si entiendo muy bien lo que quieres, pero a bote pronto se me
ocurre utilizar un campo personalizado con un selector que te permita
elegir qué menú aparezca en cada página:

http://codex.wordpress.org/Function_Reference/add_meta_box

Luego en la parte pública sería algo como:
<? pinta_menu(get_post_meta($post->ID, 'menu_personalizado', true)); ?>

O algo similar.

Saludos.

> --
> Has recibido este mensaje porque estás suscrito al grupo "PHP-Ovillo" de
> Grupos de Google.
> Para publicar una entrada en este grupo, envía un correo electrónico a
> php-o...@googlegroups.com.
> Para anular tu suscripción a este grupo, envía un correo electrónico a
> php-ovillo+...@googlegroups.com
> Para tener acceso a más opciones, visita el grupo en
> http://groups.google.com/group/php-ovillo?hl=es.

Pablo de la Vega

unread,
Nov 1, 2010, 5:04:25 PM11/1/10
to php-o...@googlegroups.com
Vas a wp-admin/nav-menus.php

(apariencia > menu)

crea los menu que sean necesarios con el nombre de la pagina

luego en el header pone :

$text = $_SERVER['REQUEST_URI'];
$data = explode('/', $text);
$page= empty($data[1]) ? 'home' : $data[1];
$page = str_replace("-", " ", $page);

<?php wp_nav_menu( array('menu' => $page, 'container_class' => 'menu-header', 'theme_location' => 'primary' ) ); ?>

Ahi te toma el menu con el nombte de la pagina

ej

about_us

www.test.com/about_us/bla/bla/bla


toma about_us (tambien sacando los bla bla)

en este ejemplo fijate la linea 3:

$page= empty($data[1]) ? 'home' : $data[1];

quiere decir que si es

www.test.com va a tener home

NO se que pasa si una pagina no tiene header, podes fijarte y ver que pasa :P

salutes!

espero que te sea util


--
Pablo de la Vega
Blog: www.agevaled.com
Twitter: @agevaled

jaume op

unread,
Nov 2, 2010, 3:43:48 AM11/2/10
to php-o...@googlegroups.com
Gracias a todos por las respuestas.

 Al final creo  lo solucione  creando diferentes widgets diferentes
para cada página y luego diciendole a cada uno de ellos que páginas le
corresponen. Por ejemplo:

if (is_page('1' , '2')){
<?php if ( !function_exists('dynamic_sidebar') ||
!dynamic_sidebar("Sidebar1") ) : ?>

}
elseif(is_page('3' , '4')){
<?php if ( !function_exists('dynamic_sidebar') ||
!dynamic_sidebar("Sidebar2") ) : ?>
}


Saludos
Jaume

Jairo Ochoa

unread,
Nov 2, 2010, 10:44:47 AM11/2/10
to php-ovillo
Esa es la mejor opción, en el Core es mejor no tocar.

Cabría la opción de redefinir funciones en el Theme, en el archivo functions.php
--

Jairo Ochoa


Dropbox - Almacenamiento gratis / Free online backup
https://www.dropbox.com/referrals/NTg2Njc1MTg5

jaume op

unread,
Nov 3, 2010, 3:31:00 AM11/3/10
to php-o...@googlegroups.com
Por supuesto puedo ir a Funciones y en el Sidebar crear varias barras
para luego decirle que páginas incluirá cada una de ellas. Pero por
"azar" encontré un Plugin (Widgert Logic, para WP) que hace que cada
widget se pueda presentar solo en las páginas que deseas, facilitando
así el trabajo de quienes pueden venir posteriormente, bueno y el mio
también.
Creo que su interés radica en que de esta forma con un sidebar te basta.


Saludos
Jaume


El día 2 de noviembre de 2010 15:44, Jairo Ochoa
<jairo...@gmail.com> escribió:

Reply all
Reply to author
Forward
0 new messages