Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

Asignar ID a Thumbnails

Estas en el tema de Asignar ID a Thumbnails en el foro de WordPress en Foros del Web. Saludos antetodo. Honestamente no sé mucho de php y por eso estoy aquí. Estoy integrando un plugin jQuery con wordpress y si todo sale bn! ...
  #1 (permalink)  
Antiguo 08/11/2011, 21:34
 
Fecha de Ingreso: abril-2011
Ubicación: Colombia
Mensajes: 59
Antigüedad: 13 años
Puntos: 19
Asignar ID a Thumbnails

Saludos antetodo. Honestamente no sé mucho de php y por eso estoy aquí.

Estoy integrando un plugin jQuery con wordpress y si todo sale bn! prometo que el que me ayude será el primero en saberlo.

Bueno tengo este código que me muestra correctamente las thumbnails que necesito.

Código PHP:
Ver original
  1. <?php
  2. if ( has_post_thumbnail() ) {
  3.                   the_post_thumbnail();
  4.                 }                
  5. ?>

y me da como resultado el siguiente código html:

Código HTML:
Ver original
  1. <img width="#" height="#" src="#" class="attachment-post-thumbnail wp-post-image" alt="#" title="#" />

Lo que necesito es un "id" dentro de la etiqueta anterior. Ejemplo:

Código HTML:
Ver original
  1. <img width="600" height="200" src="#" class="attachment-post-thumbnail wp-post-image" alt="#" title="#"  id="AQUI EL ID" />

Me gustaría que el valor de la id de la imagen fuera lógicamente el id del post creo q esto: the_ID();

¿Cómo lo logro?

En funtions.php tengo solo esto:

Código PHP:
Ver original
  1. /*******************************
  2.      Soporte de miniatura
  3.     ********************************/
  4.    
  5.     add_theme_support( 'post-thumbnails' );
  6.     set_post_thumbnail_size( 600, 200, true );

Última edición por Nekko; 10/11/2011 a las 07:13 Razón: añado highlight
  #2 (permalink)  
Antiguo 09/11/2011, 06:14
Avatar de Nekko
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Buenos Aires
Mensajes: 3.141
Antigüedad: 16 años, 1 mes
Puntos: 656
Respuesta: Asignar ID a Thumbnails

Fijate aquí en la sección que habla de $attr
http://codex.wordpress.org/Function_...post_thumbnail

De que plugin jQuery se trata? Siempre me gustan esas cosas
__________________
Taller para crear themes wordpress desde cero | Presupuestos para trabajos particulares vía MP
  #3 (permalink)  
Antiguo 09/11/2011, 07:25
 
Fecha de Ingreso: abril-2011
Ubicación: Colombia
Mensajes: 59
Antigüedad: 13 años
Puntos: 19
Respuesta: Asignar ID a Thumbnails

Gracias Nekko por estar pendiente...

Ya había investigado ese link, pero como escribí jejejjeej no sé casi nada de php...sé que es por ahí la cosa.

El plugin jQuery q estoy adaptando a wordpress es Orbit.

Pero solo me falta asignarle la id a la etiqueta <img id="#"> resultante de las thumbnails para q "jale" el caption (descripción) de cada post...

Espero tu ayuda.

Última edición por lobos1981; 09/11/2011 a las 07:37
  #4 (permalink)  
Antiguo 09/11/2011, 07:43
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
Respuesta: Asignar ID a Thumbnails

Bueno, si bien en la página del codex sobre la función the_post_thumbnail() no hace referencia explícita al id cuando habla de los atributos ($attr), igualmente es posible:

Código:
<?php
if ( has_post_thumbnail() ) {
$attr = array(
    'id' => 'img-' . $postid,
);

the_post_thumbnail($attr);
}
?>
__________________
...___...
  #5 (permalink)  
Antiguo 09/11/2011, 08:05
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Respuesta: Asignar ID a Thumbnails

En lugar de asignarle al thumbnail el ID del post, yo le asignaría su propio ID usando get_post_thumbnail_id()

Saludos.
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #6 (permalink)  
Antiguo 09/11/2011, 08:13
 
Fecha de Ingreso: abril-2011
Ubicación: Colombia
Mensajes: 59
Antigüedad: 13 años
Puntos: 19
Respuesta: Asignar ID a Thumbnails

AlZuwaga muchas gracias... pero... perdone mi ignorancia xD

Si reemplazo mi código:

Código PHP:
Ver original
  1. <?php
  2. if ( has_post_thumbnail() ) {
  3. the_post_thumbnail();
  4. }
  5. ?>

por el q me sugiere... las thumbnails pierden el tamaño que he predefinido 600x200 en functions.php

Código PHP:
Ver original
  1. /*******************************
  2. Soporte de miniatura
  3. ********************************/
  4.  
  5. add_theme_support( 'post-thumbnails' );
  6. set_post_thumbnail_size( 600, 200, true );

y además las thumbnails resultantes siguen sin mostrarme lo que necesito el id.

Código HTML:
Ver original
  1. <img src="#" id="AQUI ID DEL POST">

Esto <?php the_ID(); ?> en el id de la thumbnail...

Última edición por Nekko; 10/11/2011 a las 07:14
  #7 (permalink)  
Antiguo 09/11/2011, 08:35
 
Fecha de Ingreso: abril-2011
Ubicación: Colombia
Mensajes: 59
Antigüedad: 13 años
Puntos: 19
Respuesta: Asignar ID a Thumbnails

UFFF! Que pena con ustedes...

Creo q mejor les paso todo el código xD

Este es el Orbit original:

Código HTML:
Ver original
  1. <div id="featured">
  2.      <img src="overflow.jpg" alt="Overflow: Hidden No More" />
  3.      <img src="captions.jpg"  alt="HTML Captions" [COLOR="Red"]data-caption="#htmlCaption"[/COLOR] />
  4.      <img src="features.jpg" alt="and more features" />
  5. </div>
  6. <!-- Captions for Orbit -->
  7. <span class="orbit-caption" [COLOR="Red"]id="htmlCaption"[/COLOR]>I'm A Badass Caption</span>

----------------------------------------
Revisando caí en cuenta y NO es el atributo id sino:
Código HTML:
Ver original
  1. data-caption="#Aquí si el id del post"

(Anteponiéndole el signo numeral dentro de comillas...)

Ejemplo:

Código HTML:
Ver original
  1. data-caption="#[COLOR="Red"]Aquí si el id del post[/COLOR]"

Y este es orbit.php que estoy "tratando" de implementar en wordpress; "jala" las thumbnails pero los captions(descripciones) :S aun no:

Además...
Como pueden observar en <!-- Captions for Orbit --> dice id="<?php the_ID(); ?>" y efectivament coloca el id del post... pero necesito q la thumbnail tambn lleve el mismo id... y para remate anteponerle el signo # ¿Complicado eh?

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() ) {
  5.                   the_post_thumbnail();     // Esta es la parte q falta...
  6.                 }                
  7.                 ?>
  8.                
  9. <!-- Captions for Orbit -->
  10. <span class="orbit-caption" id="<?php the_ID(); ?>" style="color:#F00;">
  11.  
  12.         <a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
  13.         <?php include (TEMPLATEPATH . '/inc/meta.php' ); ?>
  14.         <?php the_excerpt(); ?>
  15.  
  16. </span>
  17.  
  18.     <?php endwhile;?>
  19.     <?php else :?>
  20.     <?php endif;?>
  21.  
  22. <script type="text/javascript">
  23.      $(window).load(function() {
  24.          $('#featured').orbit({
  25.             bullets: true,
  26.             captions: true,              
  27.                     captionAnimation: 'fade',      
  28.                     captionAnimationSpeed: 800,      
  29.             });
  30.      });
  31. </script>
  32. </div>

Última edición por Nekko; 10/11/2011 a las 07:14
  #8 (permalink)  
Antiguo 09/11/2011, 09:05
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Respuesta: Asignar ID a Thumbnails

No entiendo porqué pierde el tamaño, yo siempre he preferido usar una librería externa (timthumb) para manejar los thumbnails, pero bueno, en fin, el código que te dio AlZu debería funcionar.

Otra cosa ¿intentaste lo que te dije antes? usando get_the_post_thumbnail_id() obtienes el ID de la imagen, tal vez de esa manera no pierdes el tamaño asignado en functions.php

EDITO: Prueba así:
Código PHP:
Ver original
  1. <?php
  2. if ( has_post_thumbnail() ) {
  3. $attr = array(
  4.     'id' => 'img-' . the_ID(),
  5. );
  6.  
  7. the_post_thumbnail($attr);
  8. }
  9. ?>
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose

Última edición por rogertm; 09/11/2011 a las 09:16
  #9 (permalink)  
Antiguo 09/11/2011, 10:02
 
Fecha de Ingreso: abril-2011
Ubicación: Colombia
Mensajes: 59
Antigüedad: 13 años
Puntos: 19
Respuesta: Asignar ID a Thumbnails

rogertm gracias por su atención.

Intenté el código de AlZuwaga pero como dije antes me cambia el tamaño que tengo en funtions.php por 150x150px... además como aclaré... necesito el siguiente atributo dentro de la etiqueta img:

Código HTML:
Ver original
  1. data-caption="#[COLOR="Red"]Aquí si el id del post[/COLOR]"

Como no sé casi nada de php, pues no sé como usar get_the_post_thumbnail_id()

A modo de esclarecer más el asunto, el archivo orbit.php lo llamo por medio de:

Código PHP:
Ver original
  1. <?php require('./blog/wp-blog-header.php'); ?>
  2.  
  3.     <?php include('orbit.php'); ?>

ya que tengo wordpress alojado en http://misitio/blog

Última edición por Nekko; 10/11/2011 a las 07:15
  #10 (permalink)  
Antiguo 09/11/2011, 10:30
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Respuesta: Asignar ID a Thumbnails

Para que the_ID() te funcione, tienes que usarlo dentro del Loop, de otra manera creo (CREO) que tienes que hacer global la variable $post.

Habría que probar ... ¿Ese <div id="featured"> está dentro de algún Loop? osea, dentro de algún código como este: <?php if (have_posts()) : while (have_posts()) : the_post(); ?> ... En ese caso si podrás hacer algo como esto:
Código PHP:
Ver original
  1. data-caption="#<?php the_ID() ?>"
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #11 (permalink)  
Antiguo 09/11/2011, 10:52
 
Fecha de Ingreso: abril-2011
Ubicación: Colombia
Mensajes: 59
Antigüedad: 13 años
Puntos: 19
Respuesta: Asignar ID a Thumbnails

Este es orbit.php: tal cual..como está.

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() ) {
  5. the_post_thumbnail(); // Esta es la parte q falta...
  6. }
  7. ?>
  8.  
  9. <!-- Captions for Orbit -->
  10. <span class="orbit-caption" id="<?php the_ID(); ?>" style="color:#F00;">
  11.  
  12. <a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
  13. <?php include (TEMPLATEPATH . '/inc/meta.php' ); ?>
  14. <?php the_excerpt(); ?>
  15.  
  16. </span>
  17.  
  18. <?php endwhile;?>
  19. <?php else :?>
  20. <?php endif;?>
  21.  
  22. <script type="text/javascript">
  23. $(window).load(function() {
  24. $('#featured').orbit({
  25. bullets: true,
  26. captions: true,
  27. captionAnimation: 'fade',
  28. captionAnimationSpeed: 800,
  29. });
  30. });
  31. </script>
  32. </div>

-------------------
¿Dónde debo colocar...

Código PHP:
Ver original
  1. data-caption="#<?php the_ID() ?>"

mejor dicho para q la imagen resultante se vea así... con ese atributo data-caption y anteponerle el signo numeral..

Código HTML:
Ver original
  1. <img src="" data-caption="[COLOR="Red"]#[/COLOR]AQUÍ ID del Post">

Última edición por Nekko; 10/11/2011 a las 07:16
  #12 (permalink)  
Antiguo 09/11/2011, 11:34
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Respuesta: Asignar ID a Thumbnails

A ver, yo dije eso porque tú lo quieres poner allí:
Cita:
Este es el Orbit original:

<div id="featured">
<img src="overflow.jpg" alt="Overflow: Hidden No More" />
<img src="captions.jpg" alt="HTML Captions" data-caption="#htmlCaption" />
<img src="features.jpg" alt="and more features" />
</div>
<!-- Captions for Orbit -->
<span class="orbit-caption" id="htmlCaption">I'm A Badass Caption</span>

----------------------------------------
Revisando caí en cuenta y NO es el atributo id sino:

data-caption="#Aquí si el id del post"

(Anteponiéndole el signo numeral dentro de comillas...)

Ejemplo:

data-caption="#Aquí si el id del post"
Pero luego me di cuenta que estás usando un plugin, y es mejor no tocar ese código, a no ser que sepas bien lo que estás haciendo, en este caso, creo que lo que tienes que hacer es lo que te dijo AlZu desde el inicio, pero con el cambio que yo te dije luego:
Código PHP:
Ver original
  1. <div id="featured">
  2. <?php if (have_posts()) :
  3.     while (have_posts()) : the_post();
  4.         // Este es el codigo que necesitas cambiar (CREO)
  5.         if ( has_post_thumbnail() ) {
  6.             $attr = array('id' => 'img-' . the_ID());        
  7.         the_post_thumbnail($attr);
  8.         }
  9. ?>
  10. <!-- Captions for Orbit -->
  11.     <span class="orbit-caption" id="<?php the_ID(); ?>" style="color:#F00;">
  12.  
  13.     <a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
  14.     <?php include (TEMPLATEPATH . '/inc/meta.php' ); ?>
  15.     <?php the_excerpt(); ?>
  16.  
  17.     </span>
  18.  
  19. <?php
  20.     endwhile; // Cierre del while() linea 3
  21.     else; // Este else no se de donde sale :/
  22. endif; // Cierre del if() linea 2
  23. ?>
  24.  
  25.     <script type="text/javascript">
  26.     $(window).load(function() {
  27.     $('#featured').orbit({
  28.     bullets: true,
  29.     captions: true,
  30.     captionAnimation: 'fade',
  31.     captionAnimationSpeed: 800,
  32.     });
  33.     });
  34.     </script>
  35. </div><!-- #featured -->
Te indenté el código para que entiendas un poco mejor la cosa.

Saludos, seguimos intentando
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #13 (permalink)  
Antiguo 09/11/2011, 11:47
 
Fecha de Ingreso: abril-2011
Ubicación: Colombia
Mensajes: 59
Antigüedad: 13 años
Puntos: 19
Respuesta: Asignar ID a Thumbnails

Este es el resultado del experimento xD:

Nota q el id del post: 429 sale antes de la etiqueta <img> y no dentro;
Además el atributo debe llamarse: data-caption="#429"


Código HTML:
Ver original
  1. <div id="featured">
  2.     429<img width="150" height="150" src="http://localhost/slide1-150x150.jpg" class="attachment-img- wp-post-image" alt="slide1" title="slide1" />    
  3.  
  4. <!-- Captions for Orbit -->
  5. <span class="orbit-caption" id="429" style="color:#F00;">
  6.         <a href="http://localhost/lobox/blog/?p=429">Thumbnails 600x200px</a>
  7.         <div class="meta">
  8.     <small>Publicado el: 4 noviembre 2011   by lobox</small>
  9.         </div>        
  10. <p>Hola esta es una prueba de Thumbnails 600x200px en la entrada, para presentation cycle. Hola esta es una prueba de Thumbnails 600x200px en la entrada, para presentation [...]
  11. <a href="http://localhost/lobox/blog/?p=429" rel="nofollow"> Leer más</a></p>
  12. </span>
Sigo buscando y probando brother!!

Última edición por Nekko; 10/11/2011 a las 07:16
  #14 (permalink)  
Antiguo 09/11/2011, 15:29
 
Fecha de Ingreso: abril-2011
Ubicación: Colombia
Mensajes: 59
Antigüedad: 13 años
Puntos: 19
Respuesta: Asignar ID a Thumbnails

Bueno Señores tengo buenas noticias... he logrado hacerlo funcionar!!

El problama ahora es q lo logré modificando media.php un archivo de núcleo de wordpress creo... y creo q no es recomendable. :(

Código PHP:
Ver original
  1. function wp_get_attachment_image($attachment_id, $size = 'thumbnail', $icon = false, $attr = '') {
  2.     $html = '';
  3.     $image = wp_get_attachment_image_src($attachment_id, $size, $icon);
  4.     if ( $image ) {
  5.         list($src, $width, $height) = $image;
  6.         $hwstring = image_hwstring($width, $height);
  7.         if ( is_array($size) )
  8.             $size = join('x', $size);
  9.         $attachment =& get_post($attachment_id);
  10.         $numeral = '#';   [COLOR="Red"]Añadí esto[/COLOR]
  11.         $caption = $numeral . get_the_ID();  [COLOR="Red"]Añadí esto[/COLOR]
  12.         $default_attr = array(
  13.             'data-caption' => $caption,   [COLOR="Red"]y Añadí esto[/COLOR]
  14.             'src'   => $src,
  15.             'class' => "attachment-$size",
  16.             'alt'   => trim(strip_tags( get_post_meta($attachment_id, '_wp_attachment_image_alt', true) )), // Use Alt field first
  17.             'title' => trim(strip_tags( $attachment->post_title )),
  18.         );
  19.         if ( empty($default_attr['alt']) )
  20.             $default_attr['alt'] = trim(strip_tags( $attachment->post_excerpt )); // If not, Use the Caption
  21.         if ( empty($default_attr['alt']) )
  22.             $default_attr['alt'] = trim(strip_tags( $attachment->post_title )); // Finally, use the title
  23.  
  24.         $attr = wp_parse_args($attr, $default_attr);
  25.         $attr = apply_filters( 'wp_get_attachment_image_attributes', $attr, $attachment );
  26.         $attr = array_map( 'esc_attr', $attr );
  27.         $html = rtrim("<img $hwstring");
  28.         foreach ( $attr as $name => $value ) {
  29.             $html .= " $name=" . '"' . $value . '"';
  30.         }
  31.         $html .= ' />';
  32.     }
  33.  
  34.     return $html;
  35. }
--------------------------------------

Pero seguí leyendo: y es posible hacerlo desde functions.php con los filtros, lo leí aquí:

http://www.webtechwise.com/wordpress...ages-to-posts/

Entonces creo q es mejor crear esa función en el archivo functions.php

¿Cómo sería?

Es decir crear al atributo data-caption="" dentro de la etiqueta imagen??
Y q lleve dentro de las comillas el the_ID(); del post??

Esta es la función a filtrar q tambien está en wp-includes/media.php de wordpress

Código PHP:
Ver original
  1. function get_image_tag($id, $alt, $title, $align, $size='medium') {
  2.  
  3.     list( $img_src, $width, $height ) = image_downsize($id, $size);
  4.     $hwstring = image_hwstring($width, $height);
  5.  
  6.     $class = 'align' . esc_attr($align) .' size-' . esc_attr($size) . ' wp-image-' . $id;
  7.     $class = apply_filters('get_image_tag_class', $class, $id, $align, $size);
  8.  
  9.     $html = '<img src="' . esc_attr($img_src) . '" alt="' . esc_attr($alt) . '" title="' . esc_attr($title).'" '.$hwstring.'class="'.$class.'" />';
  10.  
  11.     $html = [COLOR="Red"]apply_filters[/COLOR]( 'get_image_tag', $html, $id, $alt, $title, $align, $size );
  12.  
  13.     return $html;
  14. }

Última edición por Nekko; 10/11/2011 a las 07:16
  #15 (permalink)  
Antiguo 10/11/2011, 07:33
 
Fecha de Ingreso: abril-2011
Ubicación: Colombia
Mensajes: 59
Antigüedad: 13 años
Puntos: 19
Respuesta: Asignar ID a Thumbnails

Mmm no veo cómo hacerlo desde functions.php con el filtro...

Please!!
  #16 (permalink)  
Antiguo 10/11/2011, 10:18
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Respuesta: Asignar ID a Thumbnails

El trabajo con filtros, o Hooks, es una de mis áreas flacas en el trabajo con Wordpress, por ahora lo único que puedo hacer es pasarte algo de documentación para que te encamines en ese sentido.

http://codex.wordpress.org/Plugin_API
http://adambrown.info/p/wp_hooks
http://www.forosdelweb.com/f118/mini...dpress-918980/

Saludos
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #17 (permalink)  
Antiguo 10/11/2011, 11:41
 
Fecha de Ingreso: abril-2011
Ubicación: Colombia
Mensajes: 59
Antigüedad: 13 años
Puntos: 19
Respuesta: Asignar ID a Thumbnails

Se agradece la info, estoy investigando y probando bro!
  #18 (permalink)  
Antiguo 10/11/2011, 14:00
 
Fecha de Ingreso: abril-2011
Ubicación: Colombia
Mensajes: 59
Antigüedad: 13 años
Puntos: 19
Respuesta: Asignar ID a Thumbnails

Ja! Lo logré compañeros... gracias a todos y cada uno de ustedes.

Muy útil la información... empecé por adaptar este plugin a wordpress y terminé estudiando filtros.. ¿Que cosas no?

Bueno prometí que iba a compartir la tarea y a eso me dispongo... solo quiero que me sugieran cómo hacerlo.. vale?

Espero respuestas... Gracias!
  #19 (permalink)  
Antiguo 11/11/2011, 06:21
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
De acuerdo Respuesta: Asignar ID a Thumbnails

Cita:
Iniciado por lobos1981 Ver Mensaje
Ja! Lo logré compañeros... gracias a todos y cada uno de ustedes.

Muy útil la información... empecé por adaptar este plugin a wordpress y terminé estudiando filtros.. ¿Que cosas no?

Bueno prometí que iba a compartir la tarea y a eso me dispongo... solo quiero que me sugieran cómo hacerlo.. vale?

Espero respuestas... Gracias!
Felicitaciones, realmente lo has hecho muy bien, sobre todo has puesto mucho empreño y constancia, ojalá y todos los usuarios del foro fueran como tú.

Pero por favor, pasa el código con el que has solucionado tu problema, así todos aprendemos

Saludos.
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #20 (permalink)  
Antiguo 11/11/2011, 10:14
 
Fecha de Ingreso: abril-2011
Ubicación: Colombia
Mensajes: 59
Antigüedad: 13 años
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!
  #21 (permalink)  
Antiguo 11/11/2011, 10:18
Avatar de Nekko
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Buenos Aires
Mensajes: 3.141
Antigüedad: 16 años, 1 mes
Puntos: 656
Respuesta: Asignar ID a Thumbnails

Muy bueno che! Se entendió bien.
__________________
Taller para crear themes wordpress desde cero | Presupuestos para trabajos particulares vía MP

Etiquetas: php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:30.