Síganos en Facebook
Volver al Blog de Emenia

Barra Lateral diferente para cada página en WordPress

Escrito el por

Si tenemos una web creada con WordPress con contenidos diferentes en páginas distintas, puede que necesitemos una barra lateral diferente para cada página de la web. Esto lo podemos conseguir:

a) Con un solo archivo sidebar.php con condicionales que detecten en qué página estamos para aplicar un contenido distinto a cada una.
b) Utilizando barras laterales diferentes repartidas en distintos archivos, uno por cada barra lateral (ejemplo: sidebar-servicios.php, sidebar-productos.php, etc..).
c) En el caso de que utilicemos widgets, veremos cómo usar widgets distintos en cada página.

Un sólo archivo sidebar.php para todas las barras laterales

Todo este código (u otro semejante en función de nuestras necesidades) estaría dentro del archivo sidebar.php:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<div id="sidebar">
 
<?php if(is_home()){ ?>
  // Código de la barra lateral para la página de Inicio
<?php } ?>
 
<?php if(is_page('5')){ ?>
  // Código de la barra lateral de la página 5
<?php } ?>
 
<?php if(is_category('4') || (is_single() && in_category('4')) ){ ?>
  // Código de la barra lateral para una página de una categoría concreta
<?php } ?>
 
<?php if(is_search()){ ?>
  // Código de la barra lateral de la página de búsqueda
<?php } ?>
 
</div>

En este ejemplo concreto estamos diciendo que si estamos en la página de inicio de la web, se ejecute un código determinado para la barra lateral, exclusivo para ella. Si estamos en la página 5 de la web se ejecutará otro código (para saber el número que corresponde a cada página creada hacemos click en Páginas. Al situar el ratón por encima del nombre de cada página veremos en la barra inferior del navegador el enlace al que va a ir si hacemos click, algo así como /wp-admin/page.php?action=edit&post=15. En este caso el número de la página, su ID, es 15. Cambiaríamos el 5 por un 15) . A continuación indicamos que si estamos en la categoría 4 o el artículo está dentro de la categoría 4 se ejecute otro código. Y por último, si estamos en la página de búsqueda se va a ejecutar otro código diferente. Por supuesto estos condicionales se pueden cambiar en función de nuestras necesidades. Podemos ver más condicionales en WordPress.org.

Un archivo sidebar.php por cada barra lateral

La manera más sencilla de hacerlo es:
1- Buscar el archivo sidebar.php de tu tema y abrirlo con tu editor.
2- Hacer una copia del mismo grabándola con otro nombre, por ejemplo sidebar-productos.php (recuerda que siempre tiene que mantenerse en el nombre este formato sidebar-NOMBRE.php).
3- En este nuevo archivo introduce todo el código específico de esta nueva barra lateral.
4- Ahora abre la página donde quieres que se muestre esta barra lateral (siguiendo con nuestro ejemplo puede ser una página que se llame productos.php). Normalmente tendrás en esta página una llamada a la barra lateral como esta:

1
<?php get_sidebar(); ?>

5- Cambia esta línea por esta otra (en vez de productos puedes poner el nombre que tú le hayas dado al archivo sidebar-NOMBRE.php):

1
<?php get_sidebar('productos'); ?>

Recordad que entre comillas va el nombre que hemos puesto a nuestra barra lateral. Si es sidebar-NOMBRE.php habría que poner NOMBRE.

Ahora, una vez grabados los cambios, al abrir la página de Productos (o la que hayamos usado para hacer estos cambios) nos saldrá la nueva barra lateral que hemos creado específicamente para esa página.

Widgets diferentes para páginas diferentes

Si nuestra barra lateral se crea a base de widgets y queremos que en una página salga un widget y en otra salga otro widget diferente lo primero que tenemos que crear son distintas barras laterales para la página de widgets del administrador. Si en el menú de la izquierda hacemos click en Apariencia y luego en Widgets veremos algo así:

widgets_1

Para crear más barras laterales tenemos que abrir el archivo functions.php de nuestro tema. Si no existiera habría que crearlo. Normalmente en el archivo functions.php encontramos unas líneas como estas:

1
2
3
4
5
6
7
8
9
10
<?php
if ( function_exists('register_sidebar') ) {
   register_sidebar(array(
       'before_widget' => '<li id="%1$s" class="widget %2$s">',
       'after_widget' => '</li>',
       'before_title' => '<h2 class="widgettitle">',
       'after_title' => '</h2>',
   ));
}
?>

Estas líneas crean la barra lateral que vemos en la imagen anterior (el cuadro situado más a la derecha con el nombre Barra Lateral 1) y además dicen qué código HTML incluir antes y después del widget. Los widgets se añaden arrastrando el widget que deseemos al cuadro de la barra lateral (el que se llama en la imagen Barra Lateral 1).

Pero como queremos varias barras laterales diferentes donde arrastrar widgets diferentes cambiaremos el código anterior por uno de este tipo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
if ( function_exists('register_sidebar') ) register_sidebar(array(
'name' => 'Barra Lateral Inicio',
'id' => 'solo_inicio',
'before_widget' => '<li id="%1$s" class="widget %2$s">',
'after_widget' => '</li>',
'before_title' => '<h2 class="widgettitle">',
'after_title' => '</h2>', ));
 
if ( function_exists('register_sidebar') ) register_sidebar(array(
'name' => 'Barra Lateral Producto',
'id' => 'solo_producto',
'before_widget' => '<li id="%1$s" class="widget %2$s">',
'after_widget' => '</li>',
'before_title' => '<h2 class="widgettitle">',
'after_title' => '</h2>', ));
 
if ( function_exists('register_sidebar') ) {
	register_sidebar(array(
                'name' => 'Tercera Barra Lateral',
                'id' => 'tercera_barra',
		'before_widget' => '<li id="%1$s" class="widget %2$s">',
		'after_widget' => '</li>',
		'before_title' => '<h2 class="widgettitle">',
		'after_title' => '</h2>',
	));
}

Hemos creado tres barras laterales (tres cuadros distintos donde arrastrar widgets). Ahora el lado derecho de la página de Widgets, en el administrador de la web, aparecerá esto:

widgets

Pero vamos a explicar en detalle el código nuevo. Hemos repetido tres veces el código inicial, para crear tres barras laterales. Sólo hemos cambiado para cada una dos cosas: Su nombre (el que aparecerá en la cabecera de cada cuadro) que se especifica en ‘name’ => ‘Tercera Barra Lateral’ y el ID de cada uno que se especifica en id’ => ‘tercera_barra’. Un poco más adelante veremos dónde se utiliza este ID único que identifica cada barra lateral con sus widgets propios.

Ahora vamos a situar cada barra lateral dinámica en su página correspondiente. Antes hemos visto cómo crear distintos archivos sidebar (ejemplos: sidebar-producto.php, sidebar-blog.php, etc…). Lo más probable es que tengamos unas líneas como estas en el archivo sidebar.php y en cualquiera que hayamos creado a partir de una copia de este:

1
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?>

Este condicional lo que consigue es que si hay widgets se pongan los widgets en la barra lateral, y si no existen se ejecuten las líneas de código que siguen al condicional. Vamos a cambiar este condicional para la página de Producto (siguiendo con el ejemplo anterior) o para la página que deseemos. Para ello en sidebar-producto.php cambiamos ese condicional por:

1
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('solo_producto') ) : ?>

Como vemos hemos añadido el ID de la barra lateral que antes hemos llamado Barra Lateral Producto al añadirla en functions.php.

Ahora en sidebar-producto.php estarán sólo los widgets que hayamos arrastrado a esta barra lateral.

Otras lecturas recomendadas

BlogCraving, How To: Different Homepage and Single Post Sidebars
Wordpress.org, Customizing Your Sidebar
Things by Mike, WordPress – Using a different sidebar for pages and single posts.

Sigue a Juan en Twitter, en Google+, o suscríbete al RSS Feed de Emenia para estar al día de nuestros artículos.

Artículos relacionados

57 Comentarios a Barra Lateral diferente para cada página en WordPress

  1. A veces no valoramos la importancia de los post que publicamos…, tu con este desde el que te escribo, me has quitado un mini marrón de aúpa!, de encima con copiar-pegar…

    Muchas gracias,

    J.R. León

  2. Juan Diaz-Bustamante dice:

    Gracias José Ramón, me alegro que te haya sido útil!

  3. kbronciyo dice:

    en el tema de un sidebar.php para todos, se podra utilizar ese mismo llamado pero con el header.php ???

    necesito mostrar en una categoria un banner en el header diferente al que esta en portada.

    se puede?? :D

    • Juan Diaz-Bustamante dice:

      Hola kbronciyo,

      Si, claro. Puedes poner condicionales donde quieras, incluso dentro del header para por ejemplo cargar algún código de javascript sólo para alguna página concreta. En el caso que me indicas de una categoría podrías poner:

      1
      2
      3
      
      <?php if(is_category('1') || in_category(1)){ ?>
      // Aquí iría el banner
      <?php } ?>

      Prueba con eso. Ten en cuenta que en vez del “1″ que está entre paréntesis tendrás que poner el ID de tu categoría, que lo ves en Entradas/Categorías. Al poner el ratón sobre la categoría te sale abajo en el explorador el URL con el ID

  4. kbronciyo dice:

    Muchas, muchas gracias.

    Me ayudaste bastante Juan Diaz-Bustamante salio justo como queria, ahora intentare hacerlo pero que sea diferente dependiendo de la categoria y publicacion que se encuentre. :)

    Gracias por la ayuda.

  5. jordi villanueva dice:

    hola compañero, me interesa muchisimo tu publicación y la estoy siguiendo al pie de la letra, pero lo que no consigo localizar es el php de cada una de mis paginas [ blog, fotografia, slot, atletismo...]

    he modificado el sidebar.php, he hecho el sidebar-blog.php, sidebar-fotografia.php, he modificado el functions.php, pero cuando quiero llamar cada sidebar a cada pagina, no localizo el php de cada pagina, es decir blog.php ( en tu ejemplo en el punto 4 productos.php)

    he entindo mal algo?

    • Juan Diaz-Bustamante dice:

      Hola Jordi,

      Gracias por tu comentario. Debería funcionarte sin problemas. Sólo tienes que hacer un nuevo archivo sidebar, por ejemplo sidebar-nuevo.php y para llamarlo sólo tienes que escribir:

      1
      
      get_sidebar('nuevo');

      en vez de:

      1
      
      get_sidebar();
  6. fabian dice:

    este articulo es algo valiosisimo para mi se te agradece un monton socio!

    • Juan Diaz-Bustamante dice:

      Gracias Fabián!

      Hola Regulo,

      Creo que lo que has escrito ha salido algo cortado, pero espero haber comprendido lo que te sucede. Ten en cuenta que al crear un widget en functions.php tu pones como se llama este widget. Vamos a poner un ejemplo. Supongamos que tengo en el footer de la página una dirección y un número de teléfono que quiero que sean editables. En functions.php pondría:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      
      if ( function_exists('register_sidebar') ) {
         register_sidebar(array('name' => 'direccion',
      		'before_widget' => '',
      		'after_widget' => '',
      		'before_title' => '',
      		'after_title' => '',
      		));
         register_sidebar(array('name' => 'telefono',
      		'before_widget' => '',
      		'after_widget' => '',
      		'before_title' => '',
      		'after_title' => '',
      		));
      }

      Entonces, dentro del panel de control en Widgets me saldrán dos cajetines para meter widgets, uno que se llama “dirección” y otro que se llama “teléfono”. Para que ambos tengan texto arrastro a cada uno de estos cajetines un widget de texto y escribo. ¿Cómo lo recupero ya dentro del código de una página, en este caso del footer? Dentro del archivo footer.php busco dónde quiero que aparezca cada texto y escribo:

      1
      2
      
      <?php if(function_exists('dynamic_sidebar') && dynamic_sidebar(direccion)) : ?>
      <?php endif; ?>

      para que salga el contenido del widget “direccion”, y:

      1
      2
      
      <?php if(function_exists('dynamic_sidebar') && dynamic_sidebar(telefono)) : ?>
      <?php endif; ?>

      donde quieras que salga el widget “telefono”.

      No sé si era esto lo que preguntabas. Si no fuera así no dudes en preguntarme!

  7. Regulo dice:

    Buenas necesito un apoyo para resolver este acertijo, ya que ya se me cierran los ojos del sueño y tengo que irme a acostar sin conseguir el objetivo, pero teniendo fe de que por esta via pueda resolverlo. seguitus sugerencias, calro esta no soy un virtuoso del htlm pero hice lo siguiente. en el archivo functions.php tengo lo siguiente:
    ”,
    ‘after_widget’ => ”,
    ‘before_title’ => ”,
    ‘after_title’ => ”,
    ));
    if ( function_exists(‘register_sidebar’) ) register_sidebar(array(
    ‘name’ => ‘Home’,
    ‘id’ => ’205′,
    ‘before_widget’ => ”,
    ‘after_widget’ => ”,
    ‘before_title’ => ”,
    ‘after_title’ => ”, ));

    }

    Tengo un archivo sideba.php:

    y otro sidebar-Home.php:

    Puedo visualizar en las Barras de los Widgets lo siguiente:

    Barra 1: donde tengo un widget de texto con el titulo 123 y
    Barra Home: igual in widget de texto pero con el titulo Recibe tu boletin.

    Sin embargo tanto en la Pagina Home la cual el ID es el 205 como en las demas pagina me aparece en la barra lateral lo concerniente a la Barra 1: lo que contiene el widget 123.

    espero me puedan apoyar a decifrar porque no puedo tener la barras diferenciadas.

    saludos

  8. Regulo dice:

    Juan gracias por responder pero tengo el mandado a medio camino, te explico.en el archivo functions.php cree lo siguiente:

    if ( function_exists(‘register_sidebar’) ) {
    register_sidebar(array(‘name’ => ’1′,
    ‘before_widget’ => ”,
    ‘after_widget’ => ”,
    ‘before_title’ => ”,
    ‘after_title’ => ”,
    ));
    register_sidebar(array(‘name’ => ’2′,
    ‘before_widget’ => ”,
    ‘after_widget’ => ”,
    ‘before_title’ => ”,
    ‘after_title’ => ”,
    ));
    }

    lo que me genera la “Barra Lateral 1″ y la “Barra Lateral 2″. ahora lo que necesito es que por ejemplo si tengo 7 paginas, la pagina principal utilise la “Barra Lateral 1″ y para las demas paginas “Barra Lateral 2″, esto si no lo he logrado, por que en el archivo sider.php coloque lo siguiente:

    i lo que hace es incluir ambas barras laterales en todas las paginas.

    saludos y gracias por el apoyo

  9. Hugo dice:

    Tengo una consulta, en mi “blog” tengo demasiadas sub-categorias, y el problemas es q tengo un menu desplegable en cada categoria y se me esta llendo d las manos ya que el menu cada vez q se abre esta quedando mas grande q el sitio en si, lo q quiero hacer es dejar las categorías (sin q se despleguen las subcategorias) y al entrar a las mismas se muestre en el sidebar las subcategorias d la categoria ingresada y ninguna otra, no se si se entiende… ojala m puedas ayudar, saludos y felicitaciones por el blog esta excelente!

  10. Rolin dice:

    primero agradecer mucho tu post.

    tengo el mismo problema que Jordi, no encuentro los archivos php de las paginas que he creado, por ejemplo (productos.php, que es donde se supone tengo que hacer el llamado a mi sidebar. La pregunta concreta es: ¿donde estan los archivos de pagina que dices en el punto 4 de tu articulo?.

    Muchas Gracias por todo

    • Juan Diaz-Bustamante dice:

      Hola Rolin,

      Gracias por tus palabras.

      Los tendrías que haber grabado en la carpeta donde esté tu tema, es decir en wp-content/themes/nombre-de-tu-tema

  11. Rolin dice:

    hola Juan
    Gracias por responderme, cuando dices que los tendría que haber “grabado” te refieres a crear a mano un archivo por ejemplo productos.php en la carpeta que me dices?. Porque desde luego si creo una pagina llamada “productos” desde mi Panel wp-admin el archivo “productos.php” no se crea en wp-content/themes/mi-tema, ni en ningún otro lado.
    Gracias

    Un Saludo

    • Juan Diaz-Bustamante dice:

      Hola Rolin,

      No, el archivo productos.php lo tienes que crear tu con un editor (Netbeans, Dreamweaver, PHPDesigner, etc.. el que utilices) no desde wp-admin.

  12. el Che dice:

    Juan primero que nada felicitaciones por el post (si es que funciona jej)

    El tema es que lo hice una y otra vez durante horas pero no salio, creo que no estoy entendiendo bien el tutorial.

    Si no es molestia podría pedirte los pasos me los escribas?
    Para ambos casos.

    • Juan Diaz-Bustamante dice:

      Gracias, lamentablemente llevo unos meses a tope y no le estoy podiendo dedicar mucho tiempo al blog… En cuanto pueda miro lo que me indicas y lo corrijo.

  13. marala dice:

    Primero, muchas gracias por este post.
    Yo tengo un pequeño problema: tengo 9 páginas con sus 9 barras correspondientes. Todas las coloqué correctamente pero por alguna extraña razón en las 2 últimas páginas (8 y 9), se repite la barra de la página 7.
    Por más que reviso el código no encuentro el fallo. Alguna sugerencia? Muchas gracias de nuevo.

  14. marala dice:

    Hola Juan:
    aqui te paso el codigo que es un poco largo, no se si necesitaras todo o me quede corta, dime no obstante lo que necesites.

    functions.php: (barras de las páginas 7, 8 y 9)

    if ( function_exists(‘register_sidebar’) ) {
    register_sidebar(array(
    ‘name’ => ‘Como Llegar Barra Lateral’,
    ‘id’ => ‘comollegar_barra’,
    ‘before_widget’ => ”,
    ‘after_widget’ => ”,
    ‘before_title’ => ”,
    ‘after_title’ => ”,
    ));
    }

    if ( function_exists(‘register_sidebar’) ) {
    register_sidebar(array(
    ‘name’ => ‘Contacto Barra Lateral’,
    ‘id’ => ‘contacto_barra’,
    ‘before_widget’ => ”,
    ‘after_widget’ => ”,
    ‘before_title’ => ”,
    ‘after_title’ => ”,
    ));
    }

    if ( function_exists(‘register_sidebar’) ) {
    register_sidebar(array(
    ‘name’ => ‘Galeria Barra Lateral’,
    ‘id’ => ‘galeria_barra’,
    ‘before_widget’ => ”,
    ‘after_widget’ => ”,
    ‘before_title’ => ”,
    ‘after_title’ => ”,
    ));
    }

    page.php:

    Páginas 8 y 9:

    sidebar_contacto.php:

    sidebar_galeria.php:

    Muchisimas gracias

  15. marala dice:

    lo que falta:

    page.php:
    if (is_page(alojamiento)) {include (‘sidebar_alojamiento.php’); }
    else if (is_page(spa)) {include (‘sidebar_spa.php’); }
    else if (is_page(entorno)) {include (‘sidebar_entorno.php’); }
    else if (is_page(promociones)) {include (‘sidebar_promociones.php’); }
    else if (is_page(consejos)) {include (‘sidebar_consejos.php’); }
    else if (is_page(como-llegar)) {include (‘sidebar_comollegar.php’); }
    else if (is_page(contacto)) {include (‘sidebar_contacto.php’); }
    else if (is_page(galeria)) {include (‘sidebar_galeria.php’); }
    else {include (‘sidebar.php’); }

    pagina8:
    if ( !function_exists(‘dynamic_sidebar’)
    || !dynamic_sidebar(‘galeria_barra’) ) :

    pagina 9:
    if ( !function_exists(‘dynamic_sidebar’)
    || !dynamic_sidebar(‘contacto_barra’) ) :

    • Juan Diaz-Bustamante dice:

      Gracias Marala,

      Por lo que me indicas para las páginas 8 y 9 te carga el widget de la página 7 no? Has revisado bien la página de widgets para ver que has puesto en la casilla de cada una?

  16. marala dice:

    Hola Juan,
    lo revise todo y nada.
    En todos las barras tengo un widget de texto con 2 imágenes e incluso cambié en las páginas 8 y 9 por un widget de imágen y sigue cargandome la barra de la 7. Si quito los widgets en la 8 y la 9 tambien me carga la barra de la 7.
    Es una cosa un poco extraña porque si funcionó todo bien para las barras 1 a 7 no entiendo que puede pasar, además mis conociemientos son muy limitados y no tengo demasiados recursos para buscar una solución mas alla del error en el código.
    Si se te ocurre algo perfecto!, si no muchas gracias de todas formas.

  17. Martin dice:

    Maestros, buenisimo tu post, lo unico me salio la primera opcion de un sidebar para todos.. ahora tengo otro problema q seguro es una boludes…

    como seria el codigo para poner en distintas paginas categorias de links diferentes.. o sea q en una pagina me aparescan lis link de la categoria rock por ejemplo y en otra de pop, por ejemplo..

    ya prove con varios codigos

    este me muestra todo

    y teoricamente este me mostraria por separado sino entendi mal

    y no me lo toma… gracias de ante mano!!

  18. Pingback: Sidebar distinto para home y entradas at Pablo F Burgueño

  19. Ana dice:

    Hola Juan,

    Tengo un problema, al modificar el archivo functions.php, me sale un error de sintaxis:

    Parse error: syntax error, unexpected ‘<' in /etc/wordpress/wp-content/themes/default-fr/functions.php on line 27

    La cosa es que ahora no me deja abrir el blog de administrador, directamente me sale el error.

    Gracias y enhorabuena por tus tan interesantes artículos.

    • Juan Diaz-Bustamante dice:

      Hola Ana,

      Gracias por tus comentarios.

      Deberías abrir el fichero functions.php y ver qué error has podido introducir en el mismo. Si usas algún buen editor, como Netbeans por ejemplo, te indicará el error.

  20. Ana dice:

    Hola Juan,

    Perdona las molestias pero el problema es que no me deja acceder al blog, es decir, no me sale el nombre de usuario y la contraseña para poder identificarme, directamente en el navegador me sale el error:

    Parse error: syntax error, unexpected ‘<' in /etc/wordpress/wp-content/themes/default-fr/functions.php on line 27

    Estoy un poco perdida con este tema:

    La cosa es que tengo que hacer un blog más o menos como ésta web:

    http://www.comunidadesautonomas.org/

    Gracias y un cordial saludo.

    • Juan Diaz-Bustamante dice:

      Suena como un error en el archivo functions.php de tu tema. ¿Has cambiado algo en este archivo? Lo mejor es que abras el archivo, vayas a la linea 27 y veas qué error hay.

  21. @Juan Diaz-Bustamante Muchas felicidades por tu post, la verdad que me llene de alegria al ver como aun hay gente que se toma todo el tiempo del mundo a explicar tan detalladamente un proceso como este… para que personas como yo, con todas las dudas habidas y por haber se aclaren en tan poco tiempo, por la forma tan clara que tienes para explicar los pasos, te agradesco mucho la ayuda que brindas a las de mas personas.

    saludos desde Morelia Mex

  22. Si quisiera hacerlo para distintos posts (articulos)?

  23. Ya lo logre, perdon por mi apresurada duda, quien dese hacerlo la funcion es:

    1
    
     is_single()

    Saludos es eso :P

  24. charo dice:

    hola!!!!!! necesito ayuda urgente
    estoy intentando insertar un documento de word y cuando lo quiero ver me sale encima de la barra lateral y no se ve bien, lo he puesto lo más pequeño que se podía y nada, sigue igual,espero que alguien me ayude gracias de antemano

  25. contrerasweb dice:

    Hola a todos, es primera vez que posteo ya que no había necesitado ayuda para moverme en el mundo wordpress. Ahora estoy un poco desesperado porque me encargaron una web muy parecida a esta: http://lindner-group.com/es/home.html, pero no sé cómo hacer las 3 columnas con los menús que aparecen ahí. Por tiempo usé Artisteer para el template, pero no puedo separar los widgets de la página principal y me aparecen en todas.
    Alguien me podría dar una mano?
    Gracias de antemano.

  26. leonardo dice:

    muy buen post, ante todo, gracias.
    quería hacerte una consulta ¿a qué se puede deber que al leer una entrada, las barras laterales no muestran los mismos widgets o no se muestre igual que en la página principal?
    tengo 3 barras laterales con widgets en la página principal y en las páginas de las entradas individuales, están las mismas barras pero sin widgets (hay sólo uno en una de ellas) …????

    • Juan Diaz-Bustamante dice:

      Tienes que tener en algún lado algún condicional que hace que se muestren sólo en alguna de las páginas. ¿Qué código tienes en la barra lateral?

      • leonardo dice:
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
        26
        27
        28
        29
        30
        31
        32
        33
        34
        35
        36
        37
        38
        39
        40
        41
        42
        43
        44
        45
        46
        47
        48
        49
        50
        51
        52
        53
        54
        55
        56
        57
        58
        59
        60
        61
        62
        63
        64
        65
        66
        67
        68
        69
        70
        71
        72
        73
        74
        75
        76
        77
        78
        79
        80
        81
        82
        83
        84
        85
        86
        87
        88
        89
        90
        91
        92
        
        <div id="sidebars">
         
         
        <div class="left_widget">
         
        <!-- <p><a href="http://www.stumbleupon.com/submit?url=<?php the_permalink() ? rel="nofollow">&amp;title=<?php the_title(); ?>" target="_new" ><img src="<?php bloginfo('stylesheet_directory');?>/images/stumbleupon.gif" alt="stumbleupon" border="0" /></a></p> -->
         
        <!-- <p><a href="http://technorati.com/faves?add=<?php echo get_settings('home'); ? rel="nofollow">"><img src="<?php bloginfo('stylesheet_directory');?>/images/techfav.gif" alt="techme" border="0" /></a></p>-->
         
         
        <?php if(function_exists("wp_theme_switcher")) : ?>
        <h2>Theme Switcher</h2>
        <?php wp_theme_switcher('dropdown'); ?>
        <?php endif; ?>
         
        <?php if ( !function_exists('dynamic_sidebar')
                || !dynamic_sidebar(2) ) : ?>
         
        <h2>Entradas Recientes</h2>
        <ul class="arrow">
        <?php get_archives('postbypost', 8); ?>
        </ul>
         
        <h2>Comentarios Recientes</h2>
        <ul class="arrow">
        <?php mw_recent_comments(8, false, 30, 30, 50, 'all', '<li><a href="%permalink%" title="%title%" rel="nofollow">%author_name% en %title%</a></li>','d.m.y, H:i'); ?>
        </ul>
         
        <?php get_calendar(1); ?>
         
        <?php endif; ?>
         
         
        </div>
         
         
         
        <div class="right_widget">
         
        <?php if ( !function_exists('dynamic_sidebar')
                || !dynamic_sidebar(3) ) : ?>
         
         
        <?php if(is_single()): ?>
        <h2>Feeds</h2>
        <ul class="arrow">
        <li><?php comments_rss_link('Suscríbete al RSS de los comentarios de entradas'); ?></li>
        <li><a href="<?php trackback_url(display); ? rel="nofollow">">Deja un Trackback para esta entrada</a></li>
        </ul>
        <?php else : ?>
        <h2>Feeds</h2>
        <ul class="arrow">
        <li><a href="<?php bloginfo('rss2_url') ? rel="nofollow">" title="<?php echo wp_specialchars(get_bloginfo('name'), 1) ?> Feed RSS de entrada" rel="alternate" type="application/rss+xml">Sus críbete al RSS de los artículos</a></li>
        <li><a href="<?php bloginfo('comments_rss2_url') ? rel="nofollow">" title="<?php echo wp_specialchars(bloginfo('name'), 1) ?> Feed RSS de Comentarios" rel="alternate" type="application/rss+xml">Sus críbete al RSS delos comentarios de entradas</a></li>
        </ul>
        <?php endif; ?>
         
        <h2>Archivos Diarios</h2>
        <ul class="arrow">
        <?php wp_get_archives('type=daily&limit=15'); ?>
        </ul>
         
        <h2>Archivos Mensuales</h2>
        <ul class="arrow">
        <?php wp_get_archives('type=monthly&limit=12'); ?>
        </ul>
         
         
        <?php if(function_exists("akpc_most_popular")) : ?>
        <h2>Entradas Populares</h2>
        <ul class="arrow">
        <?php akpc_most_popular(); ?>
        </ul>
        <?php endif; ?>
         
         
        <h2>Las Más Comentnadas</h2>
        <?php if(function_exists("get_mostcommented")) : ?>
        <ul class="arrow">
        <?php get_mostcommented(); ?>
        </ul>
        <?php else : ?>
        <ul class="arrow">
        <li>Debes instalar el plugin de las más comentadas aquí.</li>
        </ul>
        <?php endif; ?>
         
        <?php endif; ?>
         
        </div>
         
        </div>
        • leonardo dice:

          AAAAAAAAhhhhhh… perdón, pero recién me dí cuenta, en realidad están mis widgets, pero no en los lugares que deberían estar, aparecen en dos barras al final de la entrada (cuando estoy leyendo la entrada, luego de que hice click para leerla, como entrada sola).
          No entiendo por qué ocurre esto, así que si tengo las barras 1, 2 y 3, lo que en la página principal está en la barra 1, aparece en la 2 en la entrada sola y las barras 1 y 3 vacías, pero sus contenidos al final de la entrada en dos columnas igualmente ordenadas como deberían aparecer.
          La verdad que me desconcierta.

  27. Ya te vi un par de veces en los foros de WP. tu información me parece de lo mas clara y te agradezco por el tiempo dispensado en explicar topicos de WP a la comunidad.

    Atte.

    Luciano

  28. luis dice:

    hola juan excelente tutorial hace mucho que guscaba esto pero no lo encontraba, te hago una pregunta hice todo,salen los widgets pero no me sale lo que arrastro hacia ellos, por que sera, en mi pagina se ven los que por defecto estan en el sidebar de mi theme

  29. luis dice:

    aqui esta mi sidebar y no esta la linea

    donde tengo que modificar para que los widgets que arrastre se muestren en mi blog.
    hasta ahora se muestran los predeterminados no los que arrastro para que se muestren.
    hay algo que no lo deja que se muestre

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    <form method="get" name="searchform" action="/”>
    <input type="text" value="” name=”s” style=”width: 95%;” />
     
    <input class="art-button" type="submit" name="search" value="” />
     
    <?php printf(__('You are currently browsing the %2$s blog archives for the day %3$s.’, ‘kubrick’), get_bloginfo(‘url’), get_bloginfo(‘name’), get_the_time(__(‘l, F jS, Y’, ‘kubrick’))); ?>
     
    <?php printf(__('You are currently browsing the %2$s blog archives for %3$s., ‘kubrick’), get_bloginfo(‘url’), get_bloginfo(‘name’), get_the_time(__(‘F, Y’, ‘kubrick’))); ?>
     
    <?php printf(__('You are currently browsing the %2$s blog archives for the year %3$s.’, ‘kubrick’), get_bloginfo(‘url’), get_bloginfo(‘name’), get_the_time(‘Y’)); ?>
     
    <?php printf(__('You have searched the %2$s blog archives for%3$s. If you are unable to find anything in these search results, you can try one of these links., ‘kubrick’), get_bloginfo(‘url’), get_bloginfo(‘name’), wp_specialchars(get_search_query(), true)); ?>
     
    <?php printf(__('You are currently browsing the %2$s blog archives.’, ‘kubrick’), get_bloginfo(‘url’), get_bloginfo(‘name’)); ?>

    Saludos si me podes ayudar te lo agradesco

    • Juan Diaz-Bustamante dice:

      Gracias Luis,

      No veo en tu sidebar ninguna llamada a ningún widget. Mira la contestación que hago casi arriba de todo sobre cómo mostrar el widget.

  30. Manuel dice:

    Estimado, muy buen foro acabao de llegar hoy y veo muchas cosas interesantes y de gran ayuda.

    ahora necestio una ayudita tengo un problema con wordpress, y quisiera ver si me puedes ayudar.

    tengo un sitio con wordpress, en el cual modifique el hedear poniendo un menu en el codigo directo no use ningun plugins ni nada,
    ahora desde este menu tengo que llamar a un formulario.php que estara en el sitio, pero al momento de hacer el link se abre a pagina completa y no en el marco central como el resto de las paginas, he buscado para saber como se llama o se puede llamar el taget a la pagina central y nada.
    me podrias ayudar pro favor, igual esto em supero .

    Muchas gracias!!

    • Juan Diaz-Bustamante dice:

      Lo mejor que puedes hacer es usar un plugin como Contact 7. Si quieres usar el archivo con tu código te podría ayudar mejor si pudiera verlo en funcionamiento para entender mejor lo que te pasa. ¿Lo tienes accesible por internet?

  31. Hola Juan Diaz Tu foro fue de gran ayuda con la parte de la barra lateral ahora tengo otro problema que no tiene nada que ver con esto
    espero que me puedas ayudar a resolverlo. Tengo un portal de noticias pero necesito que los usuarios puedan subir fotos y texto a mi wordpress y se ponga en modo de revision y no tengo ni idea de como hacerlo no se si me podrias ayudar en esto
    de antema no muchas gracias!!

  32. Pingback: Excelente ejemplo de etiquetas condicionales en Wordpress « gdnotes

  33. jesser pariona dice:

    Hola Juan Diaz tu aporte fue de gran ayuda, me sirvio mucho. Ahora tengo otro inconveniente sobre los menus sidebar, Cree menus en el sidebar por cada pagina, pero el problema es que cuando hago click en el enlace del menu desaparece el menu. Muchas gracias por la ayuda de antemano. xD

  34. Raquel dice:

    Gracias por el post y felicidades por el blog;-)

  35. trebol dice:

    hola estoy intentado poner otro widget de categorías y lo que hace me duplicada las categorías que ya tengo y no es lo que busco. quiero que por separado poder poner otras categorías… si pueden ayudarme os agradezco. Quizás añadiendo un widget de texto con código??? pero cuál??

  36. Aitor dice:
    1
    2
    
     
      // Código de la barra lateral de la página 5

    Hola, gracias por esta entrada tan interesante, me funciona a la perfección cuando es una página, pero cuando es un post que se pone?
    Gracias.

  37. Hola juan e realizado los pasos de como poner una barra diferente en mi blog por pagina pero no consigo que salga, me sigue salindo en la misma pagina la misma barra lateral que la del todo blog. haber si puedes echarme una mano y me dices el fallo. muy bueno el blog.

    SIDEBAR.PHP

    FUNCTIONS.PHP

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    
    'Sidebar1',
        'before_widget' => '',
        'after_widget' => '',
    	'before_title' => '',
        'after_title' => '',
        ));
     
    if ( function_exists('register_sidebar') )
        register_sidebar(array(
    	'name' =&gt; 'Sidebar2',
        'before_widget' => '',
        'after_widget' => '',
    	'before_title' => '',
        'after_title' =>'',
        ));
     
    if ( function_exists('register_sidebar') )
        register_sidebar(array(
    	'name' =>; 'Sidebar_widtv',
        'before_widget' => '',
        'after_widget' =>'',
    	'before_title' > '',
        'after_title' => '',
        ));
     
    if ( function_exists('register_sidebar') )
        register_sidebar(array(
    	'name' => 'Footer',
        'before_widget' => '',
        'after_widget' => '',
    	'before_title' => '',
        'after_title' => '',
        ));
     
     
     
    register_nav_menus( array(
    		'primary' => __( 'Primary Navigation', '' ),
    	) );

    GRACIAS POR TU ATENCION

  38. luz dice:

    Hola! primero felicidades por tu Post!

    Bueno estoy usando ya la version 3.2 de WordPress
    hice todos los pasos qe has mencionado, pero al momento de llamar a cada página no encuentro donde,(?) te explico:

    tengo 3 Páginas que las cree desde el adm de WP, entonces no se donde pueda ver el codigo para mandar a llamar el sidebar que creé para cada una de ellas.
    vi un post similar al mio, pero noo entendi bien la respuesta, espero puedas ayudarme un saludo.

  39. HUGO dice:

    Hola,

    Como utilizo todo el espacio lateral del word press, para utilizar ese espacio para publicidad ya que se pierde ese espacio. Es para utilizar todo el espacio que se esta perdiendo en mi pagina web.

    Gracias…

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

2011-2012 © Copyright Emenia S.L. - Creación y Diseño web \ Marketing Online \ Comunicación - Todos los derechos reservados.     Mobile and Web Analytics