Retirer les conditions par défaut de « The Event Calendar »

Si l’on souhaite afficher les prochains évènements avec le plugin :

The Event Calendar

Vous aurez bien les prochains èvenements entre « maintenant » et M+1.

 

Seulement voilà, « maintenant » pour moi c’est le jour J. Par exemple aujourd’hui nous sommes le ’23/05/2016′. Mais la requête par défaut est basé sur l’heure. Si votre évènement est à midi, à 13h elle aura disparu de votre page.

Pour ce faire nous allons supprimer la requête par défaut et paramétrer la notre :

(On en profite pour supprimer posts_orderby et posts_fields afin d’alléger la requête)

[pastacode lang= »php » manual= »%2F**%0A*%20Supprime%20les%20conditions%20par%20d%C3%A9faut%0A*%20Permet%20que%20l’%C3%A9v%C3%A8nement%20du%20jour%20reste%20toute%20la%20journ%C3%A9e%20et%20ne%20disparaisse%20pas%20apr%C3%A8s%20l’heure%20de%20d%C3%A9but%0A*%2F%0Afunction%20ctw_tribe_remove_posts_where_filter(%20%24query%20)%20%7B%0A%09global%20%24wp%3B%0A%09%2F**%0A%09*%20La%20premi%C3%A8re%20condition%20permet%20de%20savoir%20si%20nous%20sommes%20en%20front_page%2C%20car%20la%20fonction%20is_front_page()%20n’est%20pas%20encore%20affect%C3%A9%0A%09*%20%40source%20http%3A%2F%2Fwww.wpaustralia.org%2Fwordpress-forums%2Ftopic%2Fpre_get_posts-and-is_front_page%2F%0A%09*%2F%0A%09if%20(%20add_query_arg(%20%24wp-%3Equery_string%2C%20 »%2C%20home_url(%20%24wp-%3Erequest%20)%20)%20%3D%3D%20get_home_url()%20%0A%09%09%26%26%20%24query-%3Etribe_is_event%20)%7B%0A%09%09%09remove_filter(%20’posts_fields’%2C%20array(%20’Tribe__Events__Query’%2C%20’posts_fields’%20)%2C%2010%20)%3B%0A%09%09%09remove_filter(%20’posts_where’%2C%20array(%20’Tribe__Events__Query’%2C%20’posts_where’%20)%2C%2010%20)%3B%0A%09%09%09remove_filter(%20’posts_orderby’%2C%20array(%20’Tribe__Events__Query’%2C%20’posts_orderby’%20)%2C%2010%20)%3B%0A%09%7D%0A%7D%0Aadd_action(%20’pre_get_posts’%2C%20’ctw_tribe_remove_posts_where_filter’%2C%2099%20)%3B » message= »Remove post_where dof  » highlight= » » provider= »manual »/]

Ensuite il nous faut remplacer la condition suivante avant notre template :

(Il est aussi possible d’utiliser le hook pre_get_posts afin de paramétrer une requête principale)

[pastacode lang= »php » manual= »%2F**%0A*%20Requ%C3%AAte%20pour%20les%20%C3%A9v%C3%A8nement%20d’aujourd’hui%20%C3%A0%20M%2B1%0A*%2F%0A%24date%20%3D%20new%20DateTime(%20null%2C%20new%20DateTimeZone(‘Europe%2FParis’)%20)%3B%0A%24interval%20%3D%20new%20DateInterval(‘P1M’)%3B%20%2F%2F%20Ajout%201%20Mois%20%C3%A0%20la%20date%20du%20jour%0A%24date-%3Eadd(%24interval)%3B%0A%24args%20%3D%20array(%0A%09%09’post_type’%20%09%3D%3E%20’tribe_events’%2C%0A%09%09’orderby’%09%3D%3E%20’_EventStartDate’%2C%0A%09%09’order’%09%09%3D%3E%20’ASC’%2C%0A%09%09’post_status’%09%3D%3E%20’publish’%2C%0A%09%09’meta_query’%09%3D%3E%20array(%0A%09%09%09%09%09array(%0A%09%09%09%09%09%09’key’%20%3D%3E%20’_EventEndDate’%2C%0A%09%09%09%09%09%09’value’%20%3D%3E%20array(date_i18n(%20’Y-m-d’%20)%2C%20%24date-%3Eformat(‘Y-m-d’))%2C%0A%09%09%09%09%09%09’compare’%20%3D%3E%20’BETWEEN’%2C%0A%09%09%09%09%09%09’type’%20%3D%3E%20’DATE’%0A%09%09%09%09%09)%0A%09%09%09%09)%0A%09)%3B%0A%24query%20%3D%20new%20WP_Query(%20%24args%20)%3B » message= »Requête tribe_events » highlight= » » provider= »manual »/]

 

Vous noterez la manière particulière de réaliser des conditions avec les meta_value.

 


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *