- Statut : non résolu
- Ce sujet contient 13 réponses, 5 participants et a été mis à jour pour la dernière fois par
Olivier C, le il y a 14 années.
-
AuteurMessages
-
4 mars 2010 à 17 h 57 min #479813
Bonjour,
Ma configuration WP actuelle
– Version de WordPress : 2.9.1
– Version de PHP/MySQL :
– Thème utilisé : gratte 1.0
– Extensions en place :
– Nom de l’hebergeur : free
– Adresse du site : http://aemcotedesisles.free.frProblème(s) rencontré(s) :
Bonjour
Dans le dossier image de mon theme, je vais mettre plusieurs images de header. (header.jpg, header1.jpg, header2.jpg, etc…)
J’aimerais qu’à chaque chargement de page, mon header change aléatoirement (une fois ça sera header.jpg, une autre fois ça sera header2.jpg, etc.), un peu à l’image du theme Atahualpa. (http://wp-themes.com/atahualpa/?TB_iframe=true&width=600&height=400)J’ai un peu cherché partout sur le forum mais je n’ai pas tellement trouvé comment faire …
Je dois surement rajouter du code ou changer quelque chose dans le CSS ainsi que dans header, archive, index, etc…Est ce que quelqu’un aurait une idée?
Merci d’avances pour vos précieux conseils
Fredo
6 mars 2010 à 22 h 06 min #717476Hello,
Jette un coup d’oeil au code du thème Atahualpa, le code intéressant est dans les fichiers :
– functions/bfa_rotating_header_images.php : la fonction qui charge la liste des fichiers disponibles pour l’en-tête
– functions/bfa_header_config.php : la partie qui gère l’aspect aléatoire (cherches « Header image »)Le code est sans doute beaucoup trop complexe pour ton besoin, mais il peut se simplifier en quelques lignes.
En gros, il faut :
– mettre ton image d’en-tête dans le code html, et non plus dans la css (donc dans header.php a priori)
– faire une fonction qui liste les images disponibles en t’inspirant de bfa_rotating_header_images(), ou suivant ton besoin, simplement mettre la liste « en dur » dans ton code
– générer l’attribut « src » de ta balisepar une fonction php qui utilise une fonction aléatoire (comme array_rand()) en t’inspirant de bfa_header_config()
En codant tout « en dur », sans gestion d’erreur, bref, en pas très propre, tu peux faire quelque chose comme (non testé) :
<img src='’ alt=’Banniere du site’/>
@++
6 mars 2010 à 22 h 35 min #717477Bonsoir,
Un deuxième code, au cas ou …
Alors dans Apparence – Éditeur – Éditer index.php
à mettre avant les lignesVoici le code :
<img id="frontphoto" src="/images/header/header_.jpg » alt= » » />_ rand(1, 92) : c’est pour dire qu’il faut afficher une image aléatoirement entre la première et la 92ème ( remplacez 92 par le nombre d’header que vous avez ! )
_ ‘template_directory’ signifie que les images se trouve dans le répertoire du thème.
_ ?>/images/header/header_ c’est le chemin à suivre une fois arriver au répertoire du thème. Pour vous se serais ?>/images/header_
_ header_ c’est le préfixe que devras avoir TOUS vos header ( ne pas oublier le « _ » après header -> header_1 )
_ ?>.jpg signifie qu’il doit s’agir d’une image au format .jpg ( .jpeg )Tous vos header devrons être nommé comme suis : header_1, header_2, header_3 …
Vous pouvez modifiez tous les paramètres à votre guise en écrivant par exemple banniere_ au lieu de header_
Bref, pour vous le code ressemblerais à ceci :
<img id="frontphoto" src="/images/header_.jpg » alt= » » />Si vous voulez plus de détails, si vous avez des problèmes, faite-le moi savoir !
Cordialement,
Nicolas C.23 mars 2010 à 22 h 50 min #717478darknessnicolas wrote:Bonsoir,Un deuxième code, au cas ou …
Alors dans Apparence – Éditeur – Éditer index.php
à mettre avant les lignesVoici le code :
<img id="frontphoto" src="/images/header/header_.jpg » alt= » » />_ rand(1, 92) : c’est pour dire qu’il faut afficher une image aléatoirement entre la première et la 92ème ( remplacez 92 par le nombre d’header que vous avez ! )
_ ‘template_directory’ signifie que les images se trouve dans le répertoire du thème.
_ ?>/images/header/header_ c’est le chemin à suivre une fois arriver au répertoire du thème. Pour vous se serais ?>/images/header_
_ header_ c’est le préfixe que devras avoir TOUS vos header ( ne pas oublier le « _ » après header -> header_1 )
_ ?>.jpg signifie qu’il doit s’agir d’une image au format .jpg ( .jpeg )Tous vos header devrons être nommé comme suis : header_1, header_2, header_3 …
Vous pouvez modifiez tous les paramètres à votre guise en écrivant par exemple banniere_ au lieu de header_
Bref, pour vous le code ressemblerais à ceci :
<img id="frontphoto" src="/images/header_.jpg » alt= » » />Si vous voulez plus de détails, si vous avez des problèmes, faite-le moi savoir !
Cordialement,
Nicolas C.Bonjour,
Tout d’abord, je vous remercie pour votre aide. Je n’avais jusqu’à maintenant pas eu le temps de l’essayer.
Je viens de faire de miltiples tentatives ce soir mais rien n’a fonctionné malheureusement…
Je n’ai pasdans Index. Je l’ai trouvé dans Header.php.
La 1ere ligne de mon index.php renvoie directement à Header.php semble t il:
Je me permet de vous copier les contenus de index.php:
<?php
$prev_link = get_previous_posts_link(__(‘Newer Entries »’, ‘kubrick’));
$next_link = get_next_posts_link(__(‘« Older Entries’, ‘kubrick’));
?><img src="/images/PostHeaderIcon.png » width= »32″ height= »32″ alt= »PostHeaderIcon » />
<a href=" » rel= »bookmark » title= » »>
ID )) : ?>
if(function_exists(‘get_search_form’)) get_search_form();
et Heder.php:
<html xmlns="http://www.w3.org/1999/xhtml" >
<meta http-equiv="Content-Type" content="; charset= » />
<?php if (is_home () ) { bloginfo('name'); } elseif ( is_category() ) { single_cat_title(); echo ' – ' ; bloginfo('name'); }
elseif (is_single() ) { single_post_title(); }
elseif (is_page() ) { bloginfo(‘name’); echo ‘: ‘; single_post_title(); }
else { wp_title( »,true); } ?>
<script type="text/javascript" src="/script.js »>
<link rel="stylesheet" href=" » type= »text/css » media= »screen » />
<link rel="alternate" type="application/rss+xml" title=" » href= » » />
<link rel="alternate" type="application/atom+xml" title=" » href= » » /><link rel="pingback" href=" » />
<a href="/ »>
Peut-être pourrez vous trouver le pourquoi du non fonctionnement…
Je pense qu’il y a quelque chose a toucher dans le css … mais quoi?? j’en ne sais pas trop … :-sMerci encore pour votre aide.
CordialementFrederic
24 mars 2010 à 8 h 33 min #717479Bonjour,
Dans le cas de ce site, l’image de fond est effectivement définie dans la css.
Elle est positionnée comme image de fond du bloc (vide)par le code css
div.Header-jpeg {
background-image:url(« images/Header.jpg »);
background-position:center center;
background-repeat:no-repeat;
height:200px;
left:0;
position:absolute;
top:0;
width:988px;
z-index:-1;
}Il faut modifier ce fonctionnement en insérant l’image dans le code html (la génération dynamique de la css ne me semble pas une excellente idée) en ajoutant une balise img dans le bloc div ci-dessus (ou éventuellement en le remplaçant par la balise img) – encore une fois, la partie qui choisit aléatoirement une image n’a pas été testée sur un wordpress, elle peut être à adapter avec les autres exemples fournis entre autre pour choisir entre l’utilisation de noms totalement libres pour les images comme dans mon exemple, ou de noms numérotés comme dans les autres…) :
<div class="Header-jpeg">
<img src='’
alt=’Banniere du site’/>
</div>L’image étant maintenant positionnée différemment dans la structure du document, il va falloir adapter la css pour tenter de conserver un affichage similaire ; pour cela, il faudra modifier le « div.Header-jpeg » en « div.Header-jpeg img », et adapter le code comme suit :
div.Header-jpeg img {
height:200px;
left:0;
position:absolute;
top:0;
width:988px;
z-index:-1;
}Toute la partie « background- » n’est plus utile, puisque notre image est un élément de la structure et plus le fond d’un bloc. On conserve le positionnement et les dimensions.
@++
24 mars 2010 à 19 h 21 min #717480Un grand merci !!!! ça fonctionne avec votre seconde version du code …
C’est genial !
Vu que vous avez l’air de bien vous y connaitre, j’ai un autre probleme …
La mise en page des commentaires dans mes articles est pas très chouette … Elle n’est pas du tout differencié de l’article lui même. (voyez vous même : http://aemcotedesisles.free.fr/?p=1#comments)
J’aimerais qu’ils apparaissent dans un encadré un peu comme les encadrés ou apparaissent les ligne de code au dessus (mais moins large que le texte de l’article)… avec une police plus petite … afin que les commentaires se détachent du reste…
Enfin, en résumé, je cherche une maniere de changer la présentation des commentaires pour que ça soit plus lisible et plus esthetique…
Je ne suis pas vraiment un expert en la matière mais ça doit se situer au niveau de la CSS aussi non?
Est ce que vous auriez des indications à me donner pour que j’arrive a mes fins?
Je vous remercie encore pour votre aide.
Fredo24 mars 2010 à 21 h 12 min #717481Bonsoir,
Je pense que la règle voudrait qu’un nouveau fil soit ouvert pour une nouvelle question…
L’apparence de chaque rubrique de la page est en effet gérée par la feuille de style (css). Ce sujet est plus qu’amplement documenté (mais pas forcément facile pour autant) sur internet, et sans doute aussi dans ce forum.
Je vais quand même donner quelques éléments de réponse.
Basiquement, les différentes parties de la page sont des « boîtes », correspondant à des élements de la structure du document (un titre, un sous-titre, un paragraphe, une liste, un lien, une image, …), imbriquées les unes dans les autres, et disposées sur la page suivant un certain nombre de règles.Il faut identifier la (ou les) boites dont vous voulez modifier l’affichage.
Dans votre cas, la zone qui englobe tous les commentaires est par exemple une boite (en réalité, il s’agit d’une liste d’éléments (un par commentaire) non ordonnée, « unordered list », d’où une balise
- ) qui porte l’attribut class « commentlist ». Elle contient de nombreuses autres « boîtes », pour chaque commentaire, incluant l’auteur, le contenu, la date, … et est elle-même déjà imbriquée dans plusieurs niveaux de boîtes (pas mis dans l’exemple) :
<ul class="commentlist"> <– la zone contenant la liste de tous les commentaires
<li id="li-comment-1" class="comment even thread-even depth-1"> <– élément de liste pour un commentaire
<div id="comment-1">
<div class="Post">
<div class="Post-body">
<div class="Post-inner article">
<div class="PostContent"> <– contenu du commentaire
<div class="comment-author vcard"> <– zone d'informations sur l'auteur du commentaire
<cite class="fn">
<a class="url" rel="external nofollow" href="http://wordpress.org/">Monsieur WordPress</a>
</cite><span class="says">dit</span> :
</div>
<div class="comment-meta commentmetadata"> <– zone contenant les méta-données du commentaire (date, heure, lien, …)
<a href="http://aemcotedesisles.free.fr/?p=1&cpage=1#comment-1">11 janvier 2010 à 19 h 15 min</a>
</div>
<p>Bonjour, ceci est un commentaire.<br> Pour supprimer un commentaire, connectez-vous, et affichez les commentaires de cet article. Vous pourrez alors les modifier ou les supprimer.</p>
<div class="reply"> <– lien pour répondre au commentaire
<a href="/?p=1&replytocom=1#respond" class="comment-reply-link" rel="nofollow">Répondre</a>
</div>
</div>
<div class="cleared"></div> <– zone utilisée pour forcer une "cassure" de la mise en page pour séparer verticalement les commentaires
</div>
</div>
</div>
</div>
</li>
</ul>Les feuilles de style permettent d’indiquer le formatage a appliquer en fonction de la structure du document.
On indique par exemple que tous les chapitres sous des titres de second niveau doivent être alignés à droite, …
On utilise pour cela des « sélecteurs », qui permettent de cibler les élements que l’on veut visuellement modifier, et on donne ensuite les caractéristiques que l’on veut appliquer :.commentlist .Post { /* le selecteur indique les objets de class « Post » situés (à n’importe quel niveau) sous des objets de class « commentlist » */
background-color: #ccc; /* on veut un fond gris */
border: thin solid black; /* et une bordure fine noire */
font-size: 80%; /* et une police à 80% de sa taille normale */
margin-left: 5%; /* et on laisse une marge à gauche et à droite de 5% de la taille disponible */
margin-right: 5%;
}L’exemple ci-dessus ajouté dans votre css fera plus ou moins ce que vous indiquez, mais l’important est surtout de comprendre le fonctionnement pour pouvoir ensuite faire vos propres modifications. Ceci dit, il faut prévoir du temps, ou alors le faire faire. Les css sont quelque chose de relativement complexe, surtout si on tient compte des bugs des différents navigateurs. L’exemple ici est très simple, mais si par exemple on ne met que « .Post » comme sélecteur, sans le faire précéder de « .commentlist », ou éventuellement « .comment », l’article subira la même mise en page que les commentaires, car il est lui aussi dans un bloc de classe « Post » . Il y a tout un ensemble de règles pour les sélecteurs (sur les classes, les identifiants des éléments, en fonction du type d’élément, avec des niveaux d’imbrications précis ou non, …), pour le formatage de chaque type d’élément, une hiérarchie des styles avec un héritage de certains attributs par les éléments « enfants », des priorités, des modèles de positionnement et de dimensionnement variés, …
Je ne peut que vous conseiller des outils comme les extensions « Web Developer » ou « FireBug » de Firefox, qui permettent de visualiser les différents blocs composant une page de manière intuitive, de voir le code css qui s’y applique, de faire des tests de modification « en direct », …
@++
24 mars 2010 à 21 h 46 min #717482Bonsoir!
Une autre technique, à mon sens plus simple (mais mon sens est peut-être différent des autres hein^^): indiquer, par une instruction conditionnelle, ce qu’il faut afficher selon la page. Ça donne ça, par exemple:
<div class="portrait">
<img src="chemin-de-l-image" alt="" />
</div>
<div class="portrait">
<img src="chemin-de-l-image" alt="" />
</div>
<div class="portrait">
<img src="chemin-de-l-image" alt="" />
</div>
Je m’en sers dans le thème que je suis en train de créer, et ça fonctionne impeccable. Le code est à insérer à l’endroit souhaité. Dans mon cas, il affiche l’ image dans le haut de la sidebar. Grâce aux classes, le rendu est configuré en CSS.
Voili voilou!
NB: Si l’image doit être affichée sur autre chose qu’une page, remplacer chaque « is_page() » par les termes adéquats: « is_category() », « is_single() » (pour les articles seuls), etc…
25 mars 2010 à 6 h 52 min #717483Hello Polygones,
Ça fonctionne, mais ce n’était pas la demande initiale : ce qui est demandé est une image différente à chaque chargement pour la même page, pas une image différente par page, mais en affichant toujours la même image sur la même page.
Sinon, pour ton exemple, une petite optimisation :
<div class="portrait">
<img src=" » alt= » » />
</div>
Le code sera nettement moins lourd comme cela 🙂
Le seul cas où cela ne convient pas est s’il n’y a pas d’image par défaut (si tu veux mettre quelque chose de complètement différent)@++
25 mars 2010 à 7 h 36 min #717484Oups, autant pour moi! J’avais mal lu alors. Mais effectivement, je note ton optimisation, c’est vrai que c’est moins lourd comme ça!
Bon et puis désolée pour la réponse à côté de la plaque hein, pô fait exprès 😇
25 mars 2010 à 16 h 39 min #717485Alors la moi je suis ravi !!! Vous êtes des supers experts qui avez réponses à toutes les questions.
Vous avez comblé ma demande … c’est plus qu’il n’en faut !!! Merci, merci, merci !!!26 mars 2010 à 7 h 14 min #717486Moi aussi je vous remercie, en fait j’étais surtout intéressé par les messages « hors sujets » (#8, #9). Je suis comme toi à tes débuts Polygones : pour l’instant je prend des bouts de code que je remplace, sauf que j’ai 35 ans à ce jour et non 14 !
31 mars 2010 à 15 h 27 min #717487Bonjour,
en ce qui concerne ma « présentation de commentaire », j’ai fais une tentative … je commence à me rapprocher de ce que je veux mais j’ai un souci au niveau de la mise en page. J’arrive pas à faire ce que je veux.
Du coup, tout est encadré. chaque article est encadré … et le tout et encadré aussi. Comment pourrais-je faire pour encadrer l’ensemble des commentaires seulement et qu’ensuite les commentaires soient séparés par un trait fin mais qui ne traverserait pas entierement la fenetre. Le trait s’arreterait à 5mm du trait gauche et 5mm du trait droit de l’encadré par exemple.
La si je fais le commentaire d’un commentaire j’ai un encadré dans un encadré dans un encadré … au final ça fait pas genial.
J’aimerais donc que chaque commentaire soit séparé par un trait comme je disais plus haut mais que le commentaire d’un commentaire soit juste décalé sur la droite comme la mais sans encadré ni trait…
Vous voyez ce que je veux dire? Ou alors … si vous avez une suggestion de présentation…De plus, comment puis je faire pour enlever les espaces en dessous de « répondre », au dessus du titre et également entre le commentaire et « Repondre ».
Je ne comprend pas l’endroit ou est indiqué qu’un espace doit etre à tel ou tel niveau … :-sMerci beaucoup pour votre aide.
FRedo
13 juillet 2011 à 10 h 59 min #717488Je reviens sur ce tuto et que vois-je ? :
<?php
$x = rand(1, 92);
?>Super ! Voilà la fonction aléatoire dont j’avais justement besoin en ce moment.
Merci à darknessnicolas.
-
AuteurMessages
- Le forum ‘Utilisation spécifique de WordPress’ est fermé à de nouveaux sujets et réponses.