Bonjour à tous.
Aujourd’hui nous allons voir comment transformer en 10 minutes le calendrier de WordPress en un agenda.
Tout d’abord, il faut télécharger le plugin the future is now. Ce petit plugin permet tout simplement de poster un article à une date qui n’est pas encore passée; Ce qui est fort utile pour notre idée que chaque article va être un élément d’un agenda.
Deuxième étape
Dans general-template.php : trouver la fonction get_calendar() et supprimer la partie en gras.
$dayswithposts = $wpdb->get_results(« SELECT DISTINCT DAYOFMONTH(post_date)
FROM $wpdb->posts WHERE MONTH(post_date) = ‘$thismonth’
AND YEAR(post_date) = ‘$thisyear’
AND post_type = ‘post’ AND post_status = ‘publish’ AND post_date < ‘ » . current_time(‘mysql’) . ‘\ », ARRAY_N);
Si vous ne voulez utiliser le calendrier que pour une catégorie et non tous les articles :
$dayswithposts = $wpdb->get_results(« SELECT DISTINCT DAYOFMONTH(post_date)
FROM $wpdb->posts
LEFT JOIN $wpdb->term_relationships ON($wpdb->posts.ID = $wpdb->term_relationships.object_id)
LEFT JOIN $wpdb->term_taxonomy ON($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)
LEFT JOIN $wpdb->terms ON($wpdb->term_taxonomy.term_id = $wpdb->terms.term_id)
WHERE $wpdb->terms.term_id = ’11’
AND $wpdb->term_taxonomy.taxonomy = ‘category’
AND MONTH(post_date) = ‘$thismonth’
AND YEAR(post_date) = ‘$thisyear’
AND post_type = ‘post’ AND post_status = ‘publish' », ARRAY_N);
ou 11 représente l’id de la catégorie
Voilà c’est fini et ça fonctionne !
Si cet article vous a aidé, n’hésitez pas à faire un don.
Merci, c’est tout juste ce que je cherchais !
Bonjour,
C’est exactement ce dont j’ai besoin.
Mais j’ai un souci : je souhaite utiliser l’agenda pour une seule catégorie, et j’ai beau la spécifier par le term_id cela m’affiche les articles de toutes les catégories et non uniquement celle de la catégorie dont j’ai précisé le id …
peut être faut’il regarder si avec les nouvelles version de wordpress le shéma des tables n’as pas changé ???
le mieu c’est que tu te connecte a ton phpmyadmin et que tu testes les requêtes pour voir les résultat
et en tatonnant tu devrais t’en sortir
Merci pour ta réponse rapide ! Malheureusement, 3 heures et demi et un tube de cachets d’aspirine plus tard, je n’ai toujours pas trouvé la solution. Les tables et les relations entre elles semblent bonnes. Vraiment je ne comprends pas…
Petit « update » après deux jours de galère :
Mon calendrier n’active effectivement que les dates ayant un article appartenant à la catégorie spécifiée, mais lorsque je clique sur une de ces dates, si j’ai d’autres articles à la même date qui ne font pas partie de la catégorie, ils s’affichent aussi dans ma page, et idem si je sélectionne un mois …
Une idée de comment faire pour que ne s’affichent que les articles de la catégorie spécifiée ?
Merci d’avance !
il faut que tu fasse passer la catégorie en paramètre de l’agenda
par exemple ici ça affiche les articles du 20 juin uniquement de la catégorie 11 (la catégorie concert
http://www.aveyron-concert.info/2009/06/20/&cat=11/
Bonjour,
Pouvez vous m’indiquer comment vos procéder pour ne pas afficher les articles de la catégories concert sur la page d’accueil du site aveyron-concert.
J’ai exécuté votre tutoriel mais je me retrouve aujourd’hui avec l’affichage d’un article daté du 19 aout en tête de liste de ma page par défaut.
Merci de votre aide
faut éditer ton thème en excluant la catégorie correspondant aux concerts
if (is_home()) {
query_posts(« cat=-11,-217 »); // les catégories exclues
}
?>
Merci pour votre réponse mais je ne m’en sort pas.
J’ai mis ce code
chaque fois que fois que je trouve celui-ci
mais le problème persiste.
Avez-vous une idée?
Voici l’url : http://bva-bc.ali-ghodbane.info/
De plus je n’ai pas l’info bulle au survol (voir 24 juillet)
Cordialrment
je voulais dire 25 juillet 😉
oops désolé de tous ces posts mais je vient de voir que la balise php est bloquée
les codes dontje parle sont donc ceux ci :
J’ai mis çà
if (is_home()) {
query_posts(« cat=-3 »); // les catégories exclues
}?>
chaque fois que je trouve celui-ci
if (have_posts()) : while (have_posts()) : the_post(); ?>
Merci
Bonjour,
Tout d’abord merci pour cette astuce !!
Par contre, j’ai un souci lorsque je clique sur les mois suivant et précédent : la page me ressort tous les articles du mois, y compris ceux qui ne sont pas de la catégorie choisi… j’ai essayé de placer query_post(cat=X) dans archive.php mais ça veux pas :o(
Avez-vous une idée ?
Merci
[…] Filed under: wordpress by emile l’article a été déplacé ici : Transformer le calendrier wordpress en un agenda […]
J’ai tout fait comme indiquer !
Mais que dalle ! Rien nada !
pas d’erreurs… mais plus un seul post qui se colorise dans l’agenda !
En plus je n’y connais rien au php…
AAAaaarrg…
pourtant ça parait simple !
quelqu’un pour m’aider ?
Bonjour,
Merci beaucoup pour cet article.
J’ai les mêmes symptômes que Laurent, l’agenda n’indique plus les articles.
Par contre, ça fonctionne tant que je le laisse afficher toutes les catégories.
Super article, la première partie fonctionne nickel
Par contre c’est vrai pour les catégories ça ne fonctionne pas.
Merci en tous cas!
Jivan – Mensana (http://www.mensana-etp.fr)
Bonjour,
Grâce à votre article j’ai transformé un blog wordpress 3 en un agenda via le plugin the futur is now. Je souhaite afficher sur la page d’accueil de mon site seulement les billets du jour ainsi que les futurs (lorsque la date est passée je veux que le billet ne s’affiche plus sur la page d’accueil). Je pense qu’avec Query post c’est faisable j’ai essayé beaucoup de choses mais je ne trouve pas la formule exact. Est-ce que quelqu’un a déjà fait ça ? Merci beaucoup.