Diego Cabai KEEP I.T. SIMPLE, KEEP I.T. CLEAN

15Oct/0813

Diferente Contenido según la Página en WordPress

[ad#ad4]

Muchas veces me encontré con querer mostrar diferente contenido ya sea en los sidebar o dentro de la página del blog. Cuando menciono diferente contenido quiero decir links, banners, imágenes, texto, etc. cualquier contenido posible.

Por ejemplo, en la página principal no mostrar banners o links de publicidad y luego en un post particular o en una página particular sí mostrarlos e incluso diferente contenido según la página. No tiene que ser sólo publicidad puede ser contenido como el widget de categorías, la nube de tags o cualquier otro contenido e incluso puede ser una encuesta. Con esto quiero decir que cualquier contenido es posible ya que es insertar el código php/html correspondiente.

Lamentablemente no encontré un plugin que realice esta tarea, es decir pasarle la página en la que quiero que aparezca y decirle qué código quiero que aparezca así que tuve que hacerlo todo manualmente. Tal vez luego lo arme a modo de plugin para el resto pero mientras podemos hacerlo manualmente como lo hice yo. Eso si como monté código php en el sidebar en este caso vamos a necesitar tener instalado el plugin Exec-PHP. Con él podremos ejecutar código php en nuestro sitio de wordpress.

Para hacer esta tarea vamos a usar las funciones de Conditional Tags que trae WordPress. Básicamente definimos los sitios donde queremos que aparezca el contenido y qué contenido, por ejemplo:

   1: // Este link al Blog aparecerá únicamente si estamos en la página que el link es /about
   2: <?php if (is_page('about')) { ?>
   3: <ul>
   4: <li><a href="http://www.cabai.com.ar/" target="_blank" >Diego Cabai Blog</a>  </li>
   5: </ul>
   6:  
   7: // Ahora si estamos en la etiqueta WordPress entonces el link cambia a otro
   8: <?php } elseif (is_tag('wordpress')) { ?>
   9: <ul>
  10: <li><a href="http://www.wordpress.org" target="_blank" >WordPress Site</a>  </li>
  11: </ul>
  12:  
  13: // Si estamos en la página Downloads entonces muestra una imágen en ese mismo sitio
  14: <?php } elseif (is_page('downloads')) { ?>
  15: <img src="http://www.cabai.com.ar/images/downloads.gif" />
  16:  
  17: // Si estamos en un post particular en cambio muestra las categorías en forma de lista
  18: <?php } elseif (is_single('214')) { ?>
  19: <ul>
  20: <?php
  21: wp_list_categories('orderby=name&show_count=1'); ?> 
  22: </ul>
  23:  
  24: // Por último en el resto del sitio que no sea ninguna de las páginas antes nombradas muestra un texto normal
  25: <?php } else { ?>
  26: Este texto va a aparecer en el resto de las páginas que no fueron nombradas antes...
  27:  
  28: <?php } ?>

Ese es un ejemplo muy simple de para qué lo podemos utilizar pero en el sitio de WordPress veremos todas las condiciones que podemos aprovechar. Entre ellas estan:

is_single()
Cuando se muestra un post individual.

is_single('214')
Cuando se muestra el post con el ID que especifiquemos, en este caso 214.

is_single('Acerca De')
Cuando el post con el título que especifiquemos es mostrado.

is_single('about')
Cuando el post con la URL Slug que especifiquemos es mostrado.

is_single(array(214,'about','Acerca De'))
Cuando alguno de los siguientes posts individuales es mostrado.

Estas se pueden aplicar con las mismas variantes para:

is_page()
La diferencia radica en que en este caso se trata de páginas y no de posts.

is_category()
Lo mismo pero para categorías, sólo tiene uno diferente que es in_category('8') que significa que se encuentre en esa categoría.

is_tag()
Lo mismo que el anterior pero para etiquetas.

is_author()
Idem pero para diferentes autores.

Después estan las genéricas para usar que pueden ser realmente útiles para cuando búscan algún contenido o cuando da error o simplemente en la página inicial de nuestro sitio.

is_search()
Cuando se muestra una página de resultados de búsqueda.

is_404()
Cuando sale la página de error 404 no encontrado.

is_home()
Cuando el inicio del blog es mostrado.

is_front_page()
Cuando es la página principal del sitio ya sea si es un post o una página.

Con todas estas opciones sólo que en vos en lo que podes crear y modificar y el contenido variado que podes mostrar según dónde se encuentre nuestro visitante. Como dije antes podemos mostrar desde imágenes a contenido dinámico como las categorías. En el sitio de WordPress hay otros ejemplos para usar estas funciones, el que les muestro acá es realmente simple, pero podemos utilizar alguno mas complejo como el que muestra el contenido viejo en otro color en caso de que la gente esté visitando el sitio según la fecha. Espero que les sea realmente útil como me fue a mi.

Artículos relacionados:

Cómo Sacar el Título y la Descripción de Blogger/Blogspot
WordPress 2.5 disponible en versión &quot;stable&quot;
Entradas Recientes en Blogger/Blogspot
Premio Dardo 2008
14Blogs, una nueva red de Blogs que debes visitar

Te gustó el Artículo? Compártelo!

Comments (13) Trackbacks (0)
  1. Me alegra encontrar tu blog . Es un buen trabajo . Soy RDD de http://rddblog.com , visitame y si crees que mi blog es de tu interes , podemos ser amigos , intercambiar nuestros enlaces y visitarnos a menudo . Que te parese ? Saludos !!

  2. Hola, me intersaria, si podes, ampliar la informacion sobre el widget de entradas recientes ya que googlepage actualmente no esta en uso. Como seria con google site
    Muchas gracias
    G

  3. @Ga, podes usar cualquier otro hosting que te permita subir un archivo .js y utilizarlo. Yo di el ejemplo de Google Pages porque en ese momento era un hosting gratuito que te lo permitía, pero cualquiera que encuentres que te lo permita lo podes usar.

    Saludos!

  4. Hola bueno dias,muy interesante el articulo, estuve intentando aplicarlo pero no pude, baje el plugin lo instale y esta funcionando, pero tengo algunas dudas haber si tu me puedes ayudar:

    yo quisiera mostrar una publicidad diferente para cada pagina estatica creada, intente en plantilla de page, insertando el codigo php con el id de pagina respectivo y no pude, es decir inserte:

    <?php if ( is_page(‘4′) ) {BANNER>();
    ();
    } ?>
    pero al ir haber la pagina no me la muestra, estoy trabajando en localhost.

    desde ya muchas gracias, saludos.

  5. @andres, en vez de editar el código de la página podes usar un widget con todo el código, si que queres aplicarlo en alguna sidebar, sino si vas a tener que editar el código de la plantilla.

    Por otro lado podría probar con lo siguiente:


    <?php if (is_page('42')) { ?>
    Código para el primer banner en
    formato html
    <?php } elseif (is_page('40')) { ?>
    Código para el otro banner en
    formato html
    <?php } else { ?>
    Si queres que haya algo por defecto en el resto de
    las páginas en formato html
    <?php } ?>

    Avisame como resulta.

  6. Hola amigo si existe un plugin para esto del contenido dinamico te paso la pagina es http://dvl.cl/blog/2008/05/08/como-agregar-contenido-dinamico-a-una-pagina-estatica-en-wordpress-2/

    tu copias el codigo y lo guarda con el nombre correspondiente ya sabes el que te muestra en la paginay con extencion .php hazlo con el blog de notas, mira si sirve.

    Bueno yo practicamente no se nada de codigo en php, solo en html, y ya que te ayude con el plugin quieroque me ayudes a configurar el codigo php que quiero introducir en una pagina estatica en la que muestre las entradas recientes de la pagina que cree,

    Ojala y te sirva y que me ayudes, por cierto este plugin te permite agregar directamente codigo php en la pagina o post.

    Bye nos vemos

  7. @SnkSpartan, gracias por la data pero justamente inicio el post diciendo que vas a necesitar el ExecPHP, pero ese no es el plugin que yo mencionaba, sino que exista uno que a traves de la GUI te deje decir en qué post o página qué contenido debe aparecer. Eso es lo que explica este artículo.

    Saludos!

  8. Hola:

    Como puedo mostrar diferente contenido para la categoria 13 por ej., ya sea en donde muestro todos los posts como en cada uno de ellos??
    Podría ser algo asi:

    Formato para los posts de la categoria 13

    Formato para todos los otros posts

    Esto donde lo debo colocar, en single.php?
    Desde ya gracias!!!

  9. Ups! coloque codigo pero no me lo mostro en el comentario… te envío un mail para que me contestes..puede ser???

  10. @Ariel, te envié un correo con la info. Gracias

    Saludos!

  11. Hola. Me sirvió muchísimo el artículo. Gracias.

  12. Hola amigo tu post esta muy bueno solo tengo unas duda cuando son categorias el codigo seria el sigiente ? y en que archivo se modifica? como le indico la posision del banner!! bueno espero contar con tu ayuda muchas gracias!!

    Código para el primer banner en
    formato html

    Código para el otro banner en
    formato html

  13. buy marijuana in columbia spice diamond new club drugs in india legal high ecstasy pills uk ghb london salvia victoria blue effect mojo herbal powder lunar wave bath salt hallucinogenic drugs list effects legal spice marijuana prices best legal hallucinogen amsterdam black mamba for sale raz powder reviews silver bullet marijuana buy cocaine legally online marijuana shop smoking blends get high types of ecstasy drug head shop buy spice in washington mind candy pills review legal herbal mdma club drugs salvia recreational drugs review buy herbal incense in kansas city k2 marijuana plant all night long ecstasy dream herb high buy kronic singapore nirvana party pill


Leave a comment

(required)


*

No trackbacks yet.