web-dev-qa-db-fra.com

set_post_thumbnail_size en pourcentage, pas en pixels?

J'ai créé un nouveau type de publication personnalisé et j'ai besoin que les vignettes de publication ou les images en vedette générées par la fonction get_the_post_thumbnail() soient définies en pourcentage plutôt qu'en pixels, car j'utilise une grille fluide. Idéalement, je ne définirais que la largeur (à 100%). Y a-t-il un moyen de faire cela? Utilisation potentielle de add_image_size()?

4
daysrunaway

as-tu essayé,

if(has_post_thumbnail()) {                    
    $image_src = wp_get_attachment_image_src( get_post_thumbnail_id(),'full' );
     echo '<img src="' . $image_src[0]  . '" width="100%"  />';
} 
11
Reigel

J'ai résolu ce problème en supprimant tous les attributs de largeur et de hauteur définis par WP:

    //tidy up img tags. We don't want inline height and width added by WP.
    //we'd rather use media queries and fluid img.
        function remove_image_dim_attr($html) {
            $html=preg_replace( '/width=(["\'])(.*?)\1/', '', $html );
            $html=preg_replace( '/height=(["\'])(.*?)\1/', '', $html );
            return $html;
        }
        add_filter( 'get_image_tag','remove_image_dim_attr' );
        add_filter( 'image_send_to_editor','remove_image_dim_attr' );
        add_filter( 'post_thumbnail_html','remove_image_dim_attr' );
0
Vale

Il n'est pas possible de changer les unités de la sortie par défaut en largeur et en hauteur, mais vous pouvez éventuellement remplacer la sortie via css:

/* these are the classes that get added per default */
img.wp-post-image
img.attachment-thumbnail
img.attachment-medium
img.attachment-large
img.attachment-full

Ensuite, vous pouvez le remplacer via quelque chose comme body img.attachment-large { width: 50% !important; height: 50% !important; }

0
kaiser