- Statut : non résolu
- Ce sujet contient 4 réponses, 3 participants et a été mis à jour pour la dernière fois par
Gueblo, le il y a 10 années et 5 mois.
-
AuteurMessages
-
3 janvier 2012 à 13 h 31 min #503772
Bonjour,
Ma configuration WP actuelle
– Version de WordPress : 3.3
– Version de PHP/MySQL : 5 et une râwette
– Thème utilisé : un descendant d’ Egon par flashxml
– Extensions en place :
– Nom de l’hebergeur : ovh
– Adresse du site : http://www.ombres-et-lumieres.euProblème(s) rencontré(s) : de logique dans la hiérarchie des templates
Attention, ce que je vais expliquer n’ est pas encore en place sur le site, seulement en local.
J’ ai découvert avec la version 3.3, la possibilité de créer un galerie à partir de l’ uploader de média qui insèrera un shortcode créant une galerie faiblement paramétrable. Cette galerie dispose mes imagettes avec un liens revoyant sur http://localhost:8888/wordpress/wp-content/uploads/2012/01/madeira150804F06.jpg, et donc une image pleine page sans… mise en page.
Mon problème est donc de créer cette mise en page.
Pour me permettre de mieux organiser ma galerie, j’ ai remplacé le shortcode, placé dans l’ éditeur, par le code suivant, dans ma page single.php
$args = array( ‘post_type’ => ‘attachment’, ‘numberposts’ => -1, ‘post_status’ => null, ‘post_parent’ => $post->ID ); $attachments = get_posts($args); if ($attachments) { foreach ( $attachments as $attachment ) { the_attachment_link( $attachment->ID , false ); } }
trouvé dans le codex et qui fait le même boulot mais que je peux formater par css.
Ensuite, j’ ai créé un template de page « attachment.php », pour publier les images en grande taille, ayant compris que wordpress considère que les médias attachés aux pages ou aux posts, ne sont que des posts « single » un peu particuliers.
Par mesure de sécurité, j’ ai aussi créé une page single-attachment.php
Ces deux pages sont codées sur le modèle du single.
Le problème est que les liens sur les imagettes sont têtus et continuent à pointer vers l’ image dans son répertoire.
Il y a donc un problème quelque part, car je voudrais un truc du genre:
« http://localhost:8888/wordpress/blog/14470/test-4/madeira150804F06 », si je suis sur la page blog et dans l’ article « test 4 » et que madeira150804F06.jpg est l’ image pleine taille de l’ imagette publiée dans l’ article « test 4 »Ou alors, autre option: dans « single.php » remplacer « the_attachment_link » par « echo wp_get_attachment_image », ce qui m’ affichera une image sans lien, et l’ entourer d’ un balise …. Mais quoi mettre dans le « href »? J’ ai pensé à « wp_get_attachment_link() », puisque’ il retourne le permalien soit de la page de l’ attachment soit de l’ image. Mais après essai, lorsque je clique sur une imagette de ma page single, elle est renvoyée vers elle-même. (se recharge)
J’ ai donc commencé à m’ arracher les cheveux et je crains qu’ il ne m’ en reste plus beaucoup d’ ici peu, à moins d’ avoir la solution
4 janvier 2012 à 19 h 23 min #808499Je te conseille la lecture de cet article : http://www.emmanuelgeorjon.com/wordpress-attachments-107/
5 janvier 2012 à 9 h 27 min #808500Merci pour ce lien, mais… cet article ne répond pas vraiment à ma question: le bout de code donné en fin va générer une liste d’ albums avec un lien pour y accéder. Mais rien pour accéder à l’ image en grande taille. J’ ai essayé ce bout de code, mais appliqué à mon cas il conduit à une erreur.
En fait, pour voir ce qui se passe j’ ai ajouté deux lignes à mon code, juste pour connaître la valeur renvoyée par la fonction get_wp_attachment_link, donc:‘attachment’, ‘numberposts’ => -1, ‘post_status’ => null, ‘post_parent’ => $post->ID ); $attachments = get_posts($args); if ($attachments) { foreach ( $attachments as $attachment ) { the_attachment_link( $attachment->ID , false ); echo wp_get_attachment_image( $attachment->ID, ‘thumbnail’ ); echo ‘</br>‘; echo wp_get_attachment_link( $attachment->id , ‘thumbnail’, ‘true’); echo ‘</br>‘; echo wp_get_attachment_link( $attachment->id , ‘thumbnail’, ‘false’);echo ‘</br>‘; $image_attributes = wp_get_attachment_image_src( $attachment->id ); // returns an array echo $image_attributes[0]; } } ?>
J’ ai donc ajouté deux lignes pour me faire une idée de la valeur renvoyée par cette fonction, dans le cas présent. Et voici le code html généré:
<a href="http://localhost:8888/wordpress/wp-content/uploads/2012/01/madeira150804C12.jpg" title="reportages réalisés à Bruxelles"><img width="150" height="150" src="http://localhost:8888/wordpress/wp-content/uploads/2012/01/madeira150804C12-150x150.jpg" class="attachment-thumbnail" alt="reportages réalisés à Bruxelles" title="reportages réalisés à Bruxelles"></a> <img width="150" height="150" src="http://localhost:8888/wordpress/wp-content/uploads/2012/01/madeira150804C12-150x150.jpg" class="attachment-thumbnail" alt="reportages réalisés à Bruxelles" title="reportages réalisés à Bruxelles"> <a href="http://localhost:8888/wordpress/wp-content/uploads/2012/01/madeira150804C12.jpg" title="reportages réalisés à Bruxelles"><img width="150" height="150" src="http://localhost:8888/wordpress/wp-content/uploads/2012/01/madeira150804C12-150x150.jpg" class="attachment-thumbnail" alt="reportages réalisés à Bruxelles" title="reportages réalisés à Bruxelles"></a> <img width="150" height="150" src="http://localhost:8888/wordpress/wp-content/uploads/2012/01/madeira150804C12-150x150.jpg" class="attachment-thumbnail" alt="reportages réalisés à Bruxelles" title="reportages réalisés à Bruxelles"> </br> Fichier attaché manquant </br> Fichier attaché manquant </br>
Et l’ affichage des deux dernières lignes renvoie « Fichier attaché manquant »
Donc la question reste posée: comment afficher une image dans sa taille normale, en respectant le design du site?
Je ne vois que deux solutions.
La première en créant une page template allant chercher l’ image grâce à echo wp_get_attachment_image( $ID, ‘full’ ) et transmettant le paramètre $id d’ une page à l’ autre par la méthode « get ».
La deuxième est de créer sur la page de la galerie descontenant les images en plein format et d’ utiliser les évènements javascript pour les afficher. Mais la page va devenir lourde à charger au delà de quelques images.Autre question: mais alors à quoi sert la page attachment.php, enfant de la page single.php? ou la page image.php? Quelles forment prennent-elles?
Comme conseillé, j’ ai été voir dans le thème « classic », que j’ ai downloadé pour l’ occasion, et n’ y ai pas trouvé la page image.5 janvier 2012 à 9 h 53 min #808501Regarde avec le theme twentyeleven et pour une image dans la bibliothèque de media, tu mets comme cible du lien l’url de l’attachement, pas l’url de l’image. L’image sera affichée avec le template attachment.php.
5 janvier 2012 à 17 h 08 min #808502si tu veux que les images de la galerie pointe vers la page attachment, quand tu inseres ta galerie fais attention de cocher
Lier les miniatures à : Page de fichier attaché -
AuteurMessages
- Le forum ‘Utilisation spécifique de WordPress’ est fermé à de nouveaux sujets et réponses.