la plupart de mes messages sur wordpress ont 6 ou 5 images perpost. Mon problème est que si je publiais 5 nouveaux messages avec de nouvelles images, cela ferait un total de 25 images affichées sur ma page d'accueil.
Je veux limiter 1 image perpost sur "page d'accueil uniquement", le contenu complet (disons 6 images au total, ce sera sur une seule page).
Quelqu'un sait comment le faire??
Ou tout autre plug-in d'extrait d'image pouvant limiter l'image sur la page d'accueil?
J'utilise cela dans vos thèmes functions.php
// function (image toolbox) for all images
function attachment_toolbox($size = thumbnail) {
if($images = get_children(array(
'post_parent' => get_the_ID(),
'post_type' => 'attachment',
'numberposts' => 1, // show all images is -1
'post_status' => null,
'post_mime_type' => 'image',
))) {
foreach($images as $image) {
$attimg = wp_get_attachment_image($image->ID,$size);
$postlink = get_permalink($image->post_parent);
echo '<a href="'.$postlink.'">'.$attimg.'</a>';
}
}
}
et appelez-le dans votre boucle avec
<div class="around_image">
<?php attachment_toolbox('medium'); ?>
</div><!-- / around_image -->
c'est tout droit sorti de mon site que je travaille en ce moment, changez "moyen" pour la taille de la photo souhaitée, "miniature", "moyen", "grand" ou "full_size"
pour plus d'informations , cliquez ici
/**
* @author: wpreceipes
* @link: [1]: http://www.wprecipes.com/how-to-get-the-first-image-from-the-post-and-display-it
*/
function wpse18215_catch_that_image()
{
global $post, $posts;
$first_img = '';
ob_start();
ob_end_clean();
$output = preg_match_all( '/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches );
$first_img = $matches[1][0];
//Defines a default image
if( empty( $first_img ) )
{
$first_img = '/images/default.jpg';
}
return $first_img;
}
Exemple:
echo catch_that_image();
ou:
/**
* @author: Marcelo Mesquita
* @link: http://marcelomesquita.com/
* @param (string) $size - valid: 'thumbnail', 'medium', 'large' or 'full_size'
* @param (string) $add - any additional attributes for the html-img tag
*/
function wpse18215_the_thumb( $size = 'medium', $add = '' )
{
global $wpdb, $post;
$thumb = $wpdb->get_row(
"SELECT ID,
post_title
FROM {$wpdb->posts}
WHERE post_parent = {$post->ID}
AND post_mime_type
LIKE 'image%'
ORDER BY menu_order"
);
if( ! empty( $thumb ) )
{
$image = image_downsize( $thumb->ID, $size );
return "<img src='{$image[0]}' alt='{$thumb->post_title}' {$add} />";
}
}
Exemple:
echo wpse18215_the_thumb( 'medium', 'class="alignleft" width="200" height="175"' );
Remarque: Vous devez néanmoins insérer l'appel dans votre modèle dans une instruction conditionnelle:
if ( is_home() || is_front_page() ) { /* place the function call here */ }