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()
?
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%" />';
}
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' );
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; }