N'afficher qu'une fois la date pour un ensemble de post

Invité
Invité n'ayant pas de compte PHPfrance

20 janv. 2011, 18:31

Bonjour à tous !

Voici mon problème : sur la page d'accueil de mon blog (wordpress), j'affiche les derniers articles publiés via la ligne :
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
Sachant que je n'affiche que le titre de chaque post (pour voir le contenu il faut rentrer dans l'article en question) on a donc sur cette page d'accueil une simple liste de liens (titre des post) les uns en dessous des autres. Je voudrais maintenant les classer par date de publication à la manière de cet exemple : http://www.secrets2moteurs.com/

J'ai essayer de rentrer un get_the_time() dans la boucle, mais à ce moment la il m'affiche une date pour chaque post, tandis que j'aimerai une seule date pour tous les post datant du même jour, comme dans l'exemple ci-dessus.

D'avance merci pour les infos !

Rom.

Invité
Invité n'ayant pas de compte PHPfrance

20 janv. 2011, 18:35

J'ai oublier de préciser mon site : http://webmark.romdev.fr/

On peut voir que les 2 premiers liens (test1 et test2) on chacun une date alors qu'ils ont été posté le même jour (ne pas tenir compte des autres liens).

ViPHP
xTG
ViPHP | 7331 Messages

20 janv. 2011, 19:10

Il faut utiliser un système d'ancienneté de la valeur.
Petit exemple :
$datePrecedente = "";
while(...)
{
  if( get_the_date() != $datePrecedente )
  {
    echo get_the_date();
    $datePrecedente = get_the_date();
  }
  // ...
}
Ainsi tu n'auras qu'une seule date à la fois pour la même date.

Invité
Invité n'ayant pas de compte PHPfrance

20 janv. 2011, 19:30

D'accord, donc je déclare l'affichage de la date dans cette boucle ?
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
ou faut il que j'aille directement modifier la fonction the_post(); ?

Eléphant du PHP | 256 Messages

20 janv. 2011, 20:55

Bonsoir,

WordPress repose certes sur Php mais utilise des fonctions particulières, qui sont difficiles à transposer en Php "pur".

Le forum francophone de WordPress peut t'aider efficacement, ainsi que le Codex.

Ceci posé, comme je connais plutôt ce Cms, j'ai regardé si je ne voyais pas une solution à ta question. Je pense que cet article peut répondre à ton problème :
http://www.devlounge.net/code/wordpress ... n-listings

Cordialement,

Gaspard

Invité
Invité n'ayant pas de compte PHPfrance

20 janv. 2011, 21:13

Okey ça marche, il suffit en fait de déclarer la date avec the_date et non the_time, je suis fou que ce soit aussi simple, mais content quand même :)

Merci beaucoup !

Invité
Invité n'ayant pas de compte PHPfrance

20 janv. 2011, 23:00

D'ailleurs pour infos j'ai testé ceci (qui marche) :
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
Je comprend pas trop comment les ":" marchent dans une fonction php, perso j'ai appris avec les "{" et "}"

Du coup si je veux placer du html dans tout ça, par exemple afficher les liens sous forme de liste, j'ai essayer ceci :
<ul>
<li>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
</ul>
</li>

Seulement ça me créer une liste sur les dates et non les liens :/

Invité
Invité n'ayant pas de compte PHPfrance

20 janv. 2011, 23:02

Houla désolé je refais (pas moyen d'éditer ses posts ?)

Voici ce que j'ai testé :
<ul>
<li>
<?php if (have_posts()) : while (have_posts()) : the_post(); the_date(); ?>
</ul>
</li>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

20 janv. 2011, 23:27

tu ne peut pas éditer parce que tu n'est pas inscrit ou pas connecté ;)
Il en faut peu pour être heureux ......