web-dev-qa-db-fra.com

Afficher deux images de tailles différentes sur la page d'accueil

Je voudrais avoir deux images de tailles différentes sur ma page d’accueil. J'ai actuellement toutes les images en vedette définies à 280x200. J'aimerais que certains messages de la page d'accueil affichent une image plus grande en 620x200 et d'autres en 280x200. Je ne sais pas comment accomplir cela. Je me rends compte que je peux spécifier une taille d’image personnalisée dans mon fichier de fonctions comme add_image_size( 'large-image', 620, 200, true );. Cependant, je ne suis pas sûr de savoir comment obtenir ma page d'accueil pour savoir quelle image afficher?

Je ne sais pas du tout s'il s'agit ou non d'une approche optimale, mais je pensais créer un champ personnalisé appelé "grandes fonctionnalités" et demander à la page d'accueil de vérifier si la valeur du champ personnalisé large-featured est définie sur true. Lors de l'utilisation vraie, large-image taille personnalisée et de l'absence de valeurs de champ personnalisées, utilisez la taille par défaut de wordpress.

Je ne suis pas doué pour le codage php, donc un peu d'aide ici serait génial. Je suis plutôt bon et j'arrive à comprendre un peu les choses. Merci pour votre aide. Très appréciée.

Mon site en question est: http://www.fighterstyle.com

6
Chad Fonger

Avec get_post_thumbnail(), vous avez la possibilité d'insérer une image dans votre thème. the_post_thumbnail( $size, $attr ); est valable pour le paramètre 1. La taille de votre image et son ID.

Si vous souhaitez avoir 2 tailles d'image des images en vedette sur votre page d'accueil, vous pouvez le faire comme ceci:

if(is_front_page(){  // only on frontpage
 if ( has_post_thumbnail() ) { // check if the post has a Post Thumbnail assigned to it.
  the_post_thumbnail($post->ID, array(320,320));
 } 

}else if(is_page()){
  if ( has_post_thumbnail() ) {
      the_post_thumbnail($post->ID, array(120,120));
  }
}
1
user1606423

Je vous suggère d’obtenir l’URL de la vignette à la place de la vignette qui est déjà redimensionnée lorsque vous la définissez comme image sélectionnée ...

<?php
// check if the post has a Post Thumbnail assigned to it.
if ( has_post_thumbnail() ) {
$image = wp_get_attachment_url( get_post_thumbnail_id(get_the_ID()) );
//$image = wp_get_attachment_image_src( get_post_thumbnail_id(get_the_ID())); this gets the thumbnail image which is resized.
}?>
<img src="<?php echo $image;?>"/>
0
Yamu

Créer un champ personnalisé - large_featured. Si la valeur = 1, la taille standard large sera affichée. Sinon - moyen.

$large_featured = get_post_meta( $post->ID, 'large_featured', true );
if(!empty($large_featured) && $large_featured == '1') {
    the_post_thumbnail('large');
} else {
    the_post_thumbnail('medium');
}

Vous pouvez créer des tailles d'image supplémentaires spécifiquement pour votre page d'accueil en ajoutant ceci dans functions.php:

add_image_size( 'homepage-large', 620, 620);
0
Dima

Premièrement, je pense que vous devez ajouter une nouvelle taille si elle n'est pas encore implémentée:

add_image_size( 'feature_name', 320, 200, true/false );

L'éditeur de média créera les images dans la taille actuelle.

Si vous avez d'anciennes images, les images ne seront pas régénérées à la nouvelle taille, utilisez le plugin AJAX Thumbnail Rebuild.

Maintenant, vous pouvez appeler:

echo get_the_post_thumbnail( $post_id, 'feature_name');
0
Moshe ovadia

Votre idée d'utiliser un champ personnalisé me semble bonne. Vous pouvez ensuite accéder à ces données en utilisant la fonction get_post_meta telle que décrite dans le codex , et l'utiliser pour transmettre les valeurs de la taille.

En ce qui concerne les valeurs à transmettre, au lieu de transmettre les tailles codées en dur, il est préférable de définir les tailles souhaitées dans l'écran Settings -> media, puis d'utiliser la vignette WP des mots clés, moyenne, grande ou complète lors de l'appel. la fonction get_the_post_thumbnail

0
Lea Cohen