Integración: s3Slider y Wordpress
Escrito el 20 Jan, 2009 por Alexis en Destacadas, Wordpress
Hace unos días un lector me preguntar como integrar el slider s3Slider en Wordpress, y mirando un poco las estadísticas del sitio me di cuenta que varios también se preguntaban lo mismo. Es por eso que hoy voy a explicar de manera rápida como lograr dicha integración.
s3Slider es un Slideshow para JQuery bastante ligero y ágil, la integración se sustentara con una query dentro de Wordpress
Primeramente debemos agarrar una copia de s3Slider.
Tomemos un minuto para entender que es lo que estamos creando y que elementos se encuentran en juego.

Thumbnail:
las imágenes de nuestro slideshow que crearemos con un campo personalizado o custom field
Titulo del post:
El titulo con el tag the_title
Introducción:
Usaremos la función the_content_rss para controlar el numero de palabras a mostrar
Una vez que tenemos en claro esto, procedamos.
Incluiremos s3Slider.js y JQuery.js en nuestro Header. En lo personal prefiero incluir JQuery.js directamente de Google Code para hacer mas “ligero” el site.
Abrimos nuestro Header.php e incluimos estas lineas:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js" type="text/javascript"></script>
<script src="<?php bloginfo('template_directory'); ?>/js/s3Slider.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#slider').s3Slider({
timeOut: 5000
});
});
</script>Notemos que el archivo s3Slider.js se encuentra en una carpeta llamada “js” esto es algo que también prefiero para mantener todo organizado dentro de mi Theme.
Una vez realizado el paso anterior procederemos a la integracion con Wordpress.
Recomiendo crear un archivo nuevo y luego incluirlo donde deseemos, esto nos permite estar mas organizados y ser prolijos. Creemos un archivo llamado, por ejemplo: Slider.php
Como necesitaremos un nuevo loop, la forma mas fácil y efectiva de hacer es a través de un nuevo query. Para eso escribiremos lo siguiente:
<?php
$my_query = new WP_Query('category_name=NOMBRE_DE_LA_CATEGORIA&showposts=CANTIDAD_DE_ENTRADAS');
while ($my_query->have_posts()) : $my_query->the_post();
?>Con esta función lo que estamos diciendo es que Wordpress solo muestre entradas de X categoría y X cantidad de ellas.
Luego pasaremos a diagramar la estructura para nuestro Slideshow. Lo primero que haremos sera crear un campo personal para las imagenes. Esto se logra de la siguiente manera:
<?php if (get_post_meta($post->ID, 'thumbnail', true)) { ?>
<a href="<?php the_permalink() ?>" title="Leer todo" ><img src="<?php echo get_post_meta($post->ID, "thumbnail", $single = true) ;?>" alt="<?php the_title() ;?>"/></a>Aquí podemos ver como se ha creado el campo personal, con el nombre “thumbnail” que sera el nombre que le demos a la hora de crear una nueva entrada y el valor de dicho campo sera la URL completa de nuestra imagen.
Ahora pasaremos a insertar el titulo de la entrada y la introducción de la misma, para eso escribiremos este pedazo de código:
<span class="top"><strong><a class="slide" href="<?php the_permalink() ?>" title="Leer todo" ><?php the_title() ;?></a></strong><br /> <?php the_content_rss('', FALSE, '', 20) ;?></span>Donde:
La clase “top” le dice a nuestro titulo e introducción que “aparezcan” desde la base, si deseamos lo contrario, que se muestren desde arriba, solo cambiamos la el valor a “bottom”.
Los valores dentro de the_content_rss nos indican el numero de palabras que se mostraran en la intro, en este caso solo se mostraran 20 palabras.
Por ultimo cerramos nuestro Loop:
<?php }?> <?php endwhile ;?>
Perfectos hemos creado nuestro Slideshow. Solo nos resta unir todas las partes, y darles formato vía CSS:
<div id="slider">
<ul id="sliderContent">
<?php
$my_query = new WP_Query('category_name=NOMBRE_DE_LA_CATEGORIA&showposts=CANTIDAD_DE_ENTRADAS');
while ($my_query->have_posts()) : $my_query->the_post();
?>
<li class="sliderImage">
<?php if (get_post_meta($post->ID, 'thumbnail', true)) { ?>
<a href="<?php the_permalink() ?>" title="Leer todo" ><img src="<?php echo get_post_meta($post->ID, "thumbnail", $single = true) ;?>" alt="<?php the_title() ;?>"/></a>
<span class="top"><strong><a class="slide" href="<?php the_permalink() ?>" title="Leer todo" ><?php the_title() ;?></a></strong><br /> <?php the_content_rss('', FALSE, '', 20) ;?></span>
</li>
<?php }?>
<?php endwhile ;?>
<div class="clear sliderImage"></div>
</ul>
</div>Guardamos nuestro archivo, y lo incluimos donde queremos, en mi caso lo incluí en el Header de mi Theme. Solo nos resta importarlo con la siguiente función:
<?php include (TEMPLATEPATH . '/slider.php'); ?>
Ahora solo queda en vos darle el formato deseado, hacer unos retoques, mover cositas, y tu slider estar funcionando perfectamente.











maxi |13/2/2009| Site: gapero.com.ar
esta groso la explicvacion
Alexis |9/3/2009| Site: eliseos.net
El tema de la inisializacion del script es mi culpa, en una de las tantas revisiones a la entrada se borro
Y el tema del CSS, esta entendido tacitamente que se necesita de incluirlo, quisas es mi error al no citarlo directamnete.
De todas formas me alegro que te funcione
oca |28/2/2009| Site: saltillenses.com.mx
Hola yo puse directo el jslid3r original (no el plugin de wordpress)en index.php de mi theme wordpress y funciona bien en IE6 e IE7
pero me falla en firefox y en IE8..
espero me puedan ayudar pa-ra hacerlo funcionar en firefox y IE8
soy novato mi web: http://www.saltillenses.com.mx
Leonardo Parada |8/3/2009| Site: leonardoparada.cl
Hola, gracias por lo detallado de las explicaciones.
He tratado de seguir tu tutorial y no me ha funcionado del todo bien.
Logro crear el listado de post con sus imagenes pero no me genera el Slide. Revise si estaba haciendo los llamados correctos a las respectivas librerias y todo OK.
Asi que me fui a revisar los ejemplos del s3Slider
http://www.serie3.info/s3slider/style/code/s3SliderFull.rar
y los descargue. Por lo que he podido observar el slide no funciona si no tiene asociado un CSS….creo que debieras mencionarlo en el tutorial…de ahi te cuento como me va.
Leonardo Parada |8/3/2009| Site: leonardoparada.cl
Funciono finalmente….pero ademas de agregar el CSS hay que agregar los datos para la configuracion.
$(document).ready(function() {
$(‘#slider’).s3Slider({
timeOut: 3000
});
});
Alexis |28/2/2009| Site: eliseos.net
A simple vista funciona con Firexox 3 y Opera 9.6. No te sabría decir con IE8 ya que tendría que emularlo dentro de mi Mac. Si respetaste el código que proporcione, tendría que funcionar.
Por otro lado recordá que siempre IE trae problemas, más que nada en el CSS. Por lo cual vas a tener que crear, armar, un par de hacks.
El único problema que vi en tu site con Firefox y Opera, es algunos errores en el CSS, solo eso.
Cuando arme mi site, me cerciore que funcionara bajo todos los standars que hay hoy en día.
Una vez más te recomiendo que mires bien tu CSS. Si siguen los problemas, avísame y publico mis archivos originales así te das una idea de lo que arme.