Ver Mensaje Individual
  #20 (permalink)  
Antiguo 11/11/2011, 10:14
lobos1981
 
Fecha de Ingreso: abril-2011
Ubicación: Colombia
Mensajes: 59
Antigüedad: 13 años, 8 meses
Puntos: 19
Respuesta: Asignar ID a Thumbnails

Bueno así tengo jQuery Orbit funcionando.
Seré lo más explícito posible.
Tengo mi blog wordpress alojado en un sub-directorio de esta manera:
http://misitio.com/blog/
y coloqué jQuery Orbit en la raíz del sitio, es decir:
http://misitio.com/
¿Cómo?
Así:

Vamos a http://www.zurb.com/playground/jquery_image_slider_plugin/ y descargamos el KIT

Incluimos en la carpteta /js de nuestro tema de wordpress estos 2 archivos:

jquery-1.5.1.min.js que viene sugerido (aunque lo tengo funcionando con jquery-1.4.1.min.js) y
jquery.orbit-1.2.3.min.js

En la carpeta /css de nuestro tema de wordpress incluimos: orbit-1.2.3.css

Ejemplo:
Index.php de la raiz de mi sitio http://misitio.com/

Código PHP:
Ver original
  1. <?php require('./blog/wp-blog-header.php'); ?>
  2. <html>
  3. <head>
  4. <title>Mi página</title>
  5.  
  6. <!-- Inicio sección HEAD para Orbit-->
  7. <script type="text/javascript" src="blog/wp-content/themes/mitema/js/jquery-1.5.1.min.js" ></script>
  8. <script type="text/javascript" src="blog/wp-content/themes/mitema/js/jquery.orbit-1.2.3.min.js" ></script>
  9. <link rel="stylesheet" href="blog/wp-content/themes/mitema/css/orbit-1.2.3.css">
  10. <!-- Fin sección HEAD para Orbit-->
  11.  
  12. <!--[if IE]>
  13. <style type="text/css">
  14. .timer { display: none !important; }
  15. div.caption { background:transparent; filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000,endColorstr=#99000000);zoom: 1; }
  16. </style>
  17. <![endif]-->
  18.  
  19. </head>
  20.  
  21. <body>
  22.  
  23. <!-- Inicio sección BODY para Orbit -->
  24. <?php include('./blog/wp-content/themes/mitema/orbit.php'); ?>  
  25. <!-- Fin sección BODY para Orbit -->
  26. </body>
  27.  
  28. </html>

En la carpeta de nuestro tema de wordpress: en el archivo functions.php

Código PHP:
Ver original
  1. <?php
  2.  
  3.     /************************************************
  4.      Soporte para Slider jQuery Orbit para Thumbnails
  5.      ************************************************/
  6.      
  7. function nuevo_atributo($html, $post_id, $post_thumbnail_id, $size, $attr){
  8.         $atributo = 'data-caption=';
  9.         $numeral = '#';
  10.         $attr = $atributo . $numeral . get_the_ID();
  11.         $html = wp_get_attachment_image( $post_thumbnail_id, $size, false, $attr );
  12. return $html;  
  13. }
  14. add_filter('post_thumbnail_html','nuevo_atributo',10,5);
  15.  
  16.     /*******************************
  17.      Soporte de Thumbnails
  18.     ********************************/
  19.    
  20.     add_theme_support( 'post-thumbnails' );
  21.     set_post_thumbnail_size( 600, 200, true );
  22.  
  23.        /*******************************
  24.      Ajuste de longitud de extracto de comentarios
  25.     ********************************/
  26.  
  27.     function home_excerpt_length($length) {
  28.         return 27;
  29.     }
  30.     add_filter('excerpt_length', 'home_excerpt_length');
  31.    
  32.     function cambiar_final_extracto($more) {
  33.     return ' [...]<a href="'.  get_permalink() .'" rel="nofollow"> Leer más...</a>';
  34.     }
  35.     add_filter('excerpt_more', 'cambiar_final_extracto');
  36. ?>

Nota: La primera función y filtro es la q me permitió incluir el "dichoso" data-caption="#IDdelPost"
Lo segundo es el soporte para thumbnails (miniaturas), que las tengo personalizadas con 600px de ancho y 200px de alto, para hacerlas más vistosas. Lógicamente se pueden hacer más ajustes.
Y lo tercero es el extracto del post.. que está ajustado. Y además el Leer más... con link. Esta ajustado para q se presenten en los captions o descripciones de cada imagen ( thumbnails).

Y este es Orbit.php:
Nota: lo tengo en la carpeta del tema de wordpress.

Código PHP:
Ver original
  1. <div id="featured">
  2.     <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
  3.                 <?php
  4.                 if ( has_post_thumbnail() ) { // comprueba si la entrada tiene una miniatura asignada.
  5.                   the_post_thumbnail();
  6.                 }                
  7.                 ?>
  8.                
  9. <!-- Captions for Orbit -->
  10. <span class="orbit-caption" id="<?php the_ID(); ?>" style="color:#F00;">
  11.         <a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
  12.         <?php include (TEMPLATEPATH . '/inc/meta.php' ); ?>
  13.         <?php the_excerpt(); ?>
  14. </span>
  15.     <?php endwhile;?>
  16.     <?php else :?>
  17.     <?php endif;?>
  18. <script type="text/javascript">
  19.      $(window).load(function() {
  20.          $('#featured').orbit({
  21.             bullets: true,
  22.             captions: true,                 // do you want captions?
  23.             captionAnimation: 'fade',       // fade, slideOpen, none
  24.             captionAnimationSpeed: 800,     // if so how quickly should they animate in
  25.             });
  26.      });
  27. </script>
  28. </div>

Este último es el archivo q llamamos con el <?php include('./blog/wp-content/themes/mitema/orbit.php'); ?> desde index.php en la raíz del sitio.

Bueno básicamente esto es todo lo q tengo para hacer funcionar jQuery Orbit en la raíz de mi sitio. Lo tengo ubicado allí porq es como una ventana a el blog de mi sitio. Lógicamente las thumnails o miniaturas por lo general son pequeñas, yo las tengo de este tamaño por aprovechar el plugin, pero la mayoría conocen que se les puede ajustar los tamaños para diferentes secciones o usos q le queramos dar.

Estoy instalándo en el propio tema de wordpress, pero por cosas de estilos css los captions no me salen xD ¿Que cosas no?

Para instalarlo en el propio wordpress, solo es cuestión de copiar la sección de head del ejemplo e instalarla en el header.php del tema.
Ajustarle las rutas así: <script type="text/javascript" src="<?php bloginfo('template_directory') ?>/js/jquery.orbit-1.2.3.min.js" ></script>
E incluir orbit.php donde lo creamos conveniente con <?php include('orbit.php'); ?>
Si tenemos el Api de jQuery cargado en el tema pues no seria necesario volverlo a colocar.

Espero haber sido claro y perdonen si no manejo un nivel técnico como uds, comprendan apenas tengo unos meses en esto del diseño web. Gracias!!! y Comenten please!