Entre Blogs Portal

Publicado por Fernando Tellado | 4 Marzo 2008

Tags Condicionales en Wordpress

camiseta-geek-php.gif

Mucha gente parece tener problemas con la barra lateral (sidebar), el título, etc, y es fácil de solucionar con Tags Condicionales.

A continuación tienes tres cuestiones de ejemplo para asegurar que coges la idea de como funcionan:

  1. No quiero mostrar el blogroll en la barra lateral en el blogroll o la página de enlaces
  2. Quiero escribir un mensaje en la barra lateral pero solo debería ser visible en la página principal
  3. Quiero escribir un mensaje en la barra lateral pero debería estar oculto en la página principal y en la página de categorías

Empecemos listando las tags condicionales posibles:

  • is_home()
  • is_single()
  • is_page()
  • is_category()
  • is_author()
  • is_date()
  • is_year()
  • is_month()
  • is_day()
  • is_time()
  • is_archive()
  • is_search()
  • is_paged()
  • is_404()

Todas estas tags condicionales pueden especificarse mas añadiendo ID, nombre o slug en el paréntesis, de modo que si quisiéramos hacer algo específico para el post con el ID 102 usaríamos is_single(’102′).

Las »cuestiones« 1

No quiero mostrar el blogroll en la barra lateral en el blogroll o la página de enlaces

Algo que debes saber antes de continuar es el ID de la página de enlaces. (en el ejemplo asumiremos que el ID de esta página es 10).

La llamada al blogroll está en el archivo sidebar.php de tu plantilla, así que es ahí donde trabajaremos con una tag condicional. Mira este código:

<?php if ( is_page(10) ) {
get_links_list();
} ?>

Como puedes ver, hacemos un IF is page si el ID es 10 y LUEGO hacemos esto. Entre la parte del IF hay un inicio y fin de tag ( { } ) donde especificamos que queremos que pase.

Las »cuestiones« 2

Quiero escribir un mensaje en la barra lateral pero solo debería ser visible en la página principal

Esto es casi lo mismo que en la primera cuestión, y se resuelve del mismo modo. Mira el código:

<?php if ( is_home() ) { ?>
Este es un mensaje personalizado y solo aparece en la página principal
<?php } ?>

¿Que cambia?. Nada mas que la tag condicional

Las »cuestiones« 3

Quiero escribir un mensaje en la barra lateral pero debería estar oculto en la página principal y en la página de categorías

De nuevo, es casi lo mismo que lo anterior, pero para esta petición queremos hacer un if is not y un or. Veamos el código:

<?php if (!(is_home() || is_category())) { ?>
Este es un mensaje personalizado que aparecerá en todos los sitios menos en la página principal y en la de categorías.
<?php } ?>

Las dos únicas diferencias con respecto a los ejemplos anteriores son el ! y las ||. El ! especifica la frase if is not las || el or. De modo que toda la llamada sería algo como: SI NO ESTÁ (if is not) en la página principal O (or) en una página de categorías ENTONCES (then) …

Fin

Entonces ¿que hay del resto de tags condicionales?, pues que puedes usar todas las tags condicionales de este modo, y así hacer tu contenido mucho mas dinámico. Utilizando esto, tu barra lateral no tiene porqué mostrar las mismas cosas en todas las páginas, y puedes hacer fácilmente que los titulares sean distintos en las distintas páginas de tu blog. Si quieres saber mas de tags condicionales visita el codex de WordPress.

Vía | The undersigned

También te puede interesar:

10 comentarios | Escribe un comentario

  1. Perro Callejero (40 comentarios) - 4/03/2008 a las 2:08

    WOW, un usuario común, cuyo interés sea el de escribir su blog, verá este trabajo demasiado arduo.

    Afortunadamente los escritores no tienen que preocuparse mas que por escribir. Existe un ejercito de entusiastas programadores que ya hicieron algo parecido a lo que uno quiere para su blog. Es fácil encontrar a otros programadores que hagan las modificaciones que se necesiten.

    Sin embargo, es un hecho que tienes que ser un programador, para hacer algo como esto.

    Es importante notar, que otros CMS como Movable Type hacen de este tipo de tareas, si no algo trivial, algo sencillo. Y ya hay una versión Open Source (que llego 5 años tarde, todo hay que decirlo).

  2. Pablo (21 comentarios) - 4/03/2008 a las 7:20

    Muy interesante el post. No dejo de aprender con vuestro blog un montón de cosas nuevas con las que adaptar el código de las plantillas y, como digo, son cosas muy interesantes.

  3. Rastreador (4 comentarios) - 4/03/2008 a las 20:44

    Ya estoy viendo venir un nuevo blog “ayudaMovableType.com” =;-)

  4. Perro Callejero (40 comentarios) - 4/03/2008 a las 21:06

    No.

    Movable Type es para nosotros, los old fashion men, que escribimos nuestros propios plugins y no pedimos ayuda. :P

  5. juan (12 comentarios) - 7/04/2008 a las 17:14

    Como añado varias pagina/ID a una condicional?

  6. nicolas (20 comentarios) - 29/08/2008 a las 16:19

    Que tal, tengo una pregunta yo utilizo estos condicionales, pero he visto en algun lado y ya no me acuerdo que se puede pasar como parametro para una categoría todos los post de esta, osea era algo asi como post-parent el codigo.

    Lo que necesito es esto, en la single.php donde se abren los post quiero que en todos los post de determinada categoría me aparezca un include, pero no logro hacerlo, le pongo el condicional is_category(’nombre’) y no hay caso, también probe con array pero hay que poner el nombres exactos tambien,

    me pueden dar una mano , gracias

  7. Utilidades (1 comentarios) - 4/09/2008 a las 13:42

    Hola! Están muy bien estos tags condicionados, pero me gustaria saber que código usar en el caso de que quiera usar una descripción en una página determinada, y no en las subpáginas. Ejemplo:

    <?php
    if(is_page('foro-de-pesca')) {
    echo ' ';
    }
    ?>

    De esta forma la descripción aparece siempre en las subpáginas de ‘aux’pero yo solo quiero que aparezca en ‘aux’

  8. UtilidadesPC (2 comentarios) - 10/11/2008 a las 15:14

    Hay alguna manera de que solo aparezca algo en la página principal? si usas is_home() aparece en todas las páginas (page/2,page/3,page/4….)

    ¿alguien sabe?

    Gracias y un saludo!

  9. UtilidadesPC (2 comentarios) - 10/11/2008 a las 15:30

    lo he resuielto así:

    Gracias y un saludo ;p

  10. Nico M. (1 comentarios) - 11/11/2008 a las 21:05

    como resolviste? a mi me pasa l omismo

Escribe un comentario




XHTML: Puedes usar estas etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Ayuda WordPress está alojado en Mediatemple - Tu también puedes

LO ÚLTIMO EN LOS FOROS

Cargando...

IN YOUR LANGUAGE

Spanish flagItalian flagChinese (Simplified) flagPortuguese flagEnglish flagGerman flagFrench flagJapanese flagRussian flagSwedish flagCatalan flagHebrew flag
By N2H