Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/11/2013, 12:54
Avatar de AlejandroGalvez
AlejandroGalvez
 
Fecha de Ingreso: noviembre-2013
Mensajes: 189
Antigüedad: 10 años, 5 meses
Puntos: 49
Respuesta: poner una foto de fondo al enlace generado por wp_get_archives

Obviamente vas a tener que utilizar CSS para darle estilo al enlace, ancho y altura. Pero si quieres mostrar la última imagen del año en cada enlace, me temo que debes renunciar a la función wp_get_archives() pues no te permite llegar a tal grado de personalización.

En su lugar tendrías que crear una función php que te generara los enlaces, encargándose de recuperar la última imagen de cada año y generar el enlace mostrando esta en su interior. Si te animas a ello te resultará de ayuda observar el código original de WordPress, copiarlo para crear una función propia y modificarla tu gusto:

http://core.trac.wordpress.org/browser/tags/3.7.1/src/wp-includes/general-template.php#L929

Como observarás, para los enlaces anuales utiliza get_year_link():

http://codex.wordpress.org/Function_Reference/get_year_link

Y con ello get_archives_link( $el_enlace_get_year_link ):

http://codex.wordpress.org/Function_Reference/get_archives_link

Lo último que te falta es hacer una consulta para cada año que devuelva el enlace de la última imagen. Esto es muy fácil con WP_Query() pues las imágenes son almacenadas como posts:

Código PHP:
Ver original
  1. $anyo   =   2013;
  2.  
  3. $ultima_imagen_2013 = new WP_Query(
  4.     'post_type'             => 'attachment' // Solo recuperará imágenes asociadas a entradas, es decir, publicadas.
  5.     'post_mime_type'        => 'image/jpeg,image/gif,image/jpg,image/png', // Nos aseguramos que recuperamos un attachment del tipo imagen  
  6.     'ignore_sticky_posts'   => 1, // Para evitar pillarnos los dedos con los posts marcados como fijos.
  7.     'orderby'                   => 'date', // Ordenamos los resultados por fecha
  8.     'order'                     => 'DESC', // Además ordenados descendentemente, por lo que el primer resultado será el más reciente publicado
  9.     'date_query'                => array(
  10.         array(
  11.             'year'  => $anyo, // Indicamos a la consulta que solo recupere imágenes publicadas en 2013
  12.         )
  13.     ),
  14.     'posts_per_page'        => 1, // Solo debe recuperar una entrada, en este caso la última del año 2013
  15. );

http://codex.wordpress.org/Class_Reference/WP_Query

Esta consulta no la he probado, pero en teoría debería funcionar. El último paso es recorrer los resultados del WP_Query (aunque sea uno) y llamar a wp_get_attachment_image_src( $id_del_attachment_recuperado ) para obtener el enlace de la imagen:

http://codex.wordpress.org/Function_Reference/wp_get_attachment_image_src

Todo esto necesita armarse, mejorarse y en definitiva desarrollar; pero espero que pueda servirte como guía básica de lo que pretendes.