web-dev-qa-db-fra.com

Taille de la vignette spécifique à la boucle Wordpress

C'est ma boucle:

<main id="main">

    <?php 
    // the query
    $args = array('posts_per_page' => 10 );
    $the_query = new WP_Query( $args ); 

    ?>

    <?php if ( $the_query->have_posts() ) { ?>

        <!-- loop -->

        <?php while ( $the_query->have_posts() ) {

                    $the_query->the_post(); ?>
            <div id="thumbnail">

                <?php
                if ( has_post_thumbnail() ) { the_post_thumbnail(array( "class"=>"thumbnail")); } ?>

        </div>

       <h2><a href="<?php the_permalink();?>"><?php the_title(); ?></a></h2>

       <div class="entry">

            <?php the_excerpt(); ?>

       </div>
    <?php } } else { ?>
    <p><?php _e( 'Die Posts entsprechen leider nicht den Kriterien.' ); ?></p>
    <?php }  ?>

   <!-- end of the loop -->

   <?php wp_reset_postdata(); ?>

Je veux utiliser au lieu de 150x150px 200x200px mais rien ne fonctionne pour moi. Les images doivent être recadrées.

Actuellement, cela ressemble à ceci: http://prnt.sc/b3v88w

J'ai essayé set_post_thumbnail_size (200, 200); mais tout changement ...

2
Benedikt W

set_post_thumbnail_size() (et d'autres fonctions d'API qui ajoutent/modifient des tailles) s'appliquent à la génération tant qu'elle est active . Donc, les tailles d’image générées existantes ne seront pas affectées rétroactivement par celle-ci.

Il existe de nombreux outils (plugins, wp-cli) permettant de régénérer des fichiers avec une configuration de tailles actuelle.

2
Rarst

J'utilise Aqua Resizer dans le développement de mes thèmes. https://github.com/syamilmj/Aqua-Resizer

C'est assez facile à mettre en œuvre et il devrait faire exactement ce que vous voulez. Cette fonction vous permettra de redimensionner toute image WordPress existante. L’exemple ci-dessous créerait une image 200 x 200 à partir de l’image WP Medium et la recadrerait à 200 x 200.

$thumb = get_post_thumbnail_id();
$img_url = wp_get_attachment_url( $thumb,'medium' ); //get full URL to image 
$image = aq_resize( $img_url, 200, 200, true ); //resize & crop the image

Puis appeler l'image ...

    <?php if($image) : ?>
        <img src="<?php echo $image ?>"/>
    <?php endif; ?>
1
Howard E

Dans votre function.php, vous pouvez ajouter une taille personnalisée, par exemple: add_image_size ('custom_thumbail', 200, 200); Ensuite, une fois que vous aurez régénéré les vignettes (plug-in recommandé par wordpress), il les créera ou toutes les nouvelles images téléchargées auront cette taille.

Ensuite, vous pouvez les appeler dans votre message.

Echo wp_get_attachment_url ('votre identifiant de publication', 'custom_thumbail');

https://developer.wordpress.org/reference/functions/add_image_size/

1
jake