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

1a foto en volcado de posts por categorias funciona a lo loco

Estas en el tema de 1a foto en volcado de posts por categorias funciona a lo loco en el foro de WordPress en Foros del Web. Efectivamente, a mi tema wordpress le he metido estos dos trozos de codigo: 1) ESTE DE AQUI PARA ASIGNAR A LA PRIMERA FOTO DE CADA ...
  #1 (permalink)  
Antiguo 07/02/2013, 16:58
 
Fecha de Ingreso: mayo-2011
Mensajes: 167
Antigüedad: 12 años, 11 meses
Puntos: 6
1a foto en volcado de posts por categorias funciona a lo loco

Efectivamente, a mi tema wordpress le he metido estos dos trozos de codigo:

1) ESTE DE AQUI PARA ASIGNAR A LA PRIMERA FOTO DE CADA POST LA CALIDAD DE FOTO THUMBNAIL:

function auto_post_thumbnail() {
global $post;
$already_has_thumb = has_post_thumbnail($post->ID);
if (!$already_has_thumb) {
$attached_image = get_children( "post_parent=$post->ID&post_type=attachment&post_mime_type=image&numb erposts=1" );
if ($attached_image) {
foreach ($attached_image as $attachment_id => $attachment) {
set_post_thumbnail($post->ID, $attachment_id);
}
} else {
set_post_thumbnail($post->ID, 'ID_imagen_por_defecto'); //aqui pon la ID de la imagen por defecto si quieres una imagen por defecto cuando no haya imagenes que destacar. Si no quieres ninguna modifica el codigo a tu gusto.
}
}
}

add_action('the_post', 'auto_post_thumbnail');
add_action('save_post', 'auto_post_thumbnail');
add_action('draft_to_publish', 'auto_post_thumbnail');
add_action('new_to_publish', 'auto_post_thumbnail');
add_action('pending_to_publish', 'auto_post_thumbnail');
add_action('future_to_publish', 'auto_post_thumbnail');

add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 150, 150, true );
add_image_size( 'teaser', 150, 150, true );

2) EL SEGUNDO ESTE DE AQUI QUE ENCONTRE POR INTERNET PARA QUE AL VOLCAR EL EXCERPT DE LOS POSTS POR CATEGORIAS ME INCLUYA ESA FOTO THUMBNAIL ENTRE EL TITULO DEL POST Y EL TEXTO DESCRIPTIVO:

function custom_excerpt_box() { ?>
<?php if ( has_post_thumbnail()) : ?>
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>" >
<?php the_post_thumbnail(); ?>
</a>
<?php endif; ?>
<div id="text_area_excerpt">
<?php echo '<p>' . get_the_excerpt() . ''; ?></p></div>
<?php }
add_filter('the_excerpt', 'custom_excerpt_box');

// Teaser Length
function teaser_length($length) {
return 47;
}
add_filter('excerpt_length', 'teaser_length');

Pues bien el problema como vereis por ejemplo en este volcado de una de las categorias http://tatouages-polynesiens.polines...prix-tatouage/ es que en algunos posts funciona y muestra la foto y en otros NO.

He intentando averiguar porque pero no encuentro ninguna razon logica de porque a veces funciona y otras veces no.

Esperando que vosotros podais ayudarme os doy las gracias por anticipado y os envio un cordial saludo
  #2 (permalink)  
Antiguo 10/02/2013, 20:37
Avatar de 23r9i0  
Fecha de Ingreso: noviembre-2008
Ubicación: Catalonia
Mensajes: 203
Antigüedad: 15 años, 5 meses
Puntos: 33
Respuesta: 1a foto en volcado de posts por categorias funciona a lo loco

Hola,
Primero en ese enlace no se muestran ninguna imagen.
Segundo porque usas add_action(....) para averiguar la primera imagen del post?
Esos action se usan para otro tipo de funciones.
Porque no usas la opcion imagen destacada cuando creas el post? mas facil y porque no usas la funcion predeterminada para mostralo en vez de add_filter('the_excerpt', 'custom_excerpt_box');
La pones en tu template antes de the_excerpt y listo.
  #3 (permalink)  
Antiguo 25/02/2013, 10:28
Avatar de zanguanga
Moderadora
 
Fecha de Ingreso: julio-2009
Ubicación: España
Mensajes: 1.686
Antigüedad: 14 años, 9 meses
Puntos: 429
Respuesta: 1a foto en volcado de posts por categorias funciona a lo loco

A diferencia de otros códigos similares a mí sí me funciona este, sin embargo hay algún error.

Código PHP:
Ver original
  1. function auto_post_thumbnail() {
  2.           global $post;
  3.           $already_has_thumb = has_post_thumbnail($post->ID);
  4.               if (!$already_has_thumb)  {
  5.               $attached_image = get_children( "post_parent=$post->ID&post_type=attachment&post_mime_type=image&numberposts=1" );
  6.                           if ($attached_image) {
  7.                                 foreach ($attached_image as $attachment_id => $attachment) {
  8.                                 set_post_thumbnail($post->ID, $attachment_id);
  9.                                 }
  10.                            } else {
  11.                                 set_post_thumbnail($post->ID, 'ID_imagen_por_defecto');
  12.                            }
  13.                         }
  14.       }
  15.  //Final de la función
  16. add_action('the_post', 'auto_post_thumbnail');
  17. add_action('save_post', 'auto_post_thumbnail');
  18. add_action('draft_to_publish', 'auto_post_thumbnail');
  19. add_action('new_to_publish', 'auto_post_thumbnail');
  20. add_action('pending_to_publish', 'auto_post_thumbnail');
  21. add_action('future_to_publish', 'auto_post_thumbnail');

Sin embargo al activar el debug salta esto cuando guardo un menú nuevo
Cita:
Notice: Trying to get property of non-object in ruta-tema-tema/functions.php líneas 3, 5 y 8
¿?
__________________
Mi blog personal | Mi G+

Última edición por zanguanga; 25/02/2013 a las 12:30
  #4 (permalink)  
Antiguo 06/03/2013, 11:44
Avatar de zanguanga
Moderadora
 
Fecha de Ingreso: julio-2009
Ubicación: España
Mensajes: 1.686
Antigüedad: 14 años, 9 meses
Puntos: 429
Respuesta: 1a foto en volcado de posts por categorias funciona a lo loco

He encontrado este código que, si bien no consigue todas las miniaturas de todos los post, al menos no produce errores:

Código PHP:
Ver original
  1. ffunction autoset_featured( $new_status, $old_status, $post ) {
  2.     if( $new_status != 'publish' ) return;
  3.     $already_has_thumb = has_post_thumbnail($post->ID);
  4.         if (!$already_has_thumb) {
  5.         $attached_image = get_children( "post_parent=$post->ID&post_type=attachment&post_mime_type=image&numberposts=1" );
  6.             if ($attached_image) {
  7.                 foreach ($attached_image as $attachment_id => $attachment) {
  8.                 set_post_thumbnail($post->ID, $attachment_id);
  9.                 }
  10.             }
  11.         }
  12.     }
  13. add_action( 'transition_post_status', 'autoset_featured', 10, 3 );
__________________
Mi blog personal | Mi G+

Etiquetas: categorias, foto, loco, php, posts, volcado
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 08:59.