2010-07-30 6 views
0

J'espérais obtenir quelques idées sur la façon dont je peux obtenir un certain nombre de messages qui ont été postés sur notre blog MAIS dans un certain délai. Je sais comment obtenir le nombre total mais ai besoin de cette fonctionnalité supplémentaire.Comment afficher le nombre de messages pour un laps de temps donné dans wordpress

C'est ce que j'ai pour obtenir le nombre total de messages:

$numposts = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'publish'"); 
if (0 < $numposts) $numposts = number_format($numposts); 

J'écho juste où jamais je veux afficher ce numéro

<?php if (is_page('wordpress-numbers')) { 
echo "<strong>".$numposts.' posts have been published since August 12, 2009'."</strong>"; 
} 
?> 

Par exemple, je veux savoir la nombre de messages au cours des 7 derniers jours. Peut-être utiliser un datpicker de toutes sortes?

Merci,

Matt

Répondre

2

D'accord grâce à Pat, il m'a fait penser ici et je suis venu avec ceci:

$querystr = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'post' AND post_date >= DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY) LIMIT 0, 30"); 
if (0 < $querystr) $querystr = number_format($querystr); 

Alors je vais me faire l'écho le résultat:La prochaine chose que je voudrais faire est d'ajouter la possibilité de choisir la date de début, puis montrer les résultats de ces 7 jours.

Merci encore Pat

+0

Pas de soucis - content que vous l'ayez réglé. Un widget de calendrier serait un bon moyen de le faire. Vous pourriez même avoir envie de tous permettre à l'utilisateur de choisir la date de début et de fin de la gamme. – Pat

+0

@pat ... ouais je pensais à faire ça ensuite. – TikaL13

4

Bien sûr, vous pouvez le faire en définissant une plage de dates dans un custom query:

$today = date("Y-m-d"); 
$sevenDaysAgo = date("Y-m-d", mktime(0, 0, 0, date("m") , date("d")-7, date("Y"))); 

$querystr = " 
    SELECT wposts.* 
    FROM $wpdb->posts wposts, 
    WHERE wposts.post_date BETWEEN '" . $today . "' AND '" . $sevenDaysAgo . "' 
    AND wposts.post_type = 'post' 
    ORDER BY wposts.post_date DESC 
"; 
+0

Merci Pat ... mais cela me donne aussi quelque chose à ce que je veux ... question est de savoir comment puis-je obtenir juste un certain nombre de messages? $ semaine = date ('W'); $ année = date ('Y'); query_posts ('année ='. $ Année. '& W ='. $ Semaine); – TikaL13

Questions connexes