How-to, Wordpress

Modificare la visualizzazione della lista eventi del plugin WordPress Event Organiser

Recentemente ho avuto necessità di modificare il plugin Event Organiser di WordPress per meglio adattare la visualizzazione della lista eventi alle mie esigenze.

Avevo necessità di eliminare l’orario di inizio e fine di un evento oltre che a visualizzare la data di fine evento per quelli con una durata di più giorni.

Il plugin (almeno nella versione gratuita) mostra solo la data di inizio di un evento, non permettendo di discernere immediatamente gli eventi giornalieri da quelli a più giorni.

Per evitare problemi o di perdere la modifica dopo un update ho creato una copia del file shortcode-event-list.php presente nella cartella del plugin sotto quella del template in uso, come da indicazioni delle FAQ.

Individuate la riga di codice come la seguente

<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>" ><?php the_title(); ?></a> <?php echo __('on','eventorganiser') . ' '.eo_get_the_start($format); ?>

e sostituitela con le seguenti righe

<?php if (eo_is_all_day()==true):?>
     <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>" ><?php the_title(); ?></a> <?php echo __('on','eventorganiser') . ' '.eo_get_the_start($format); ?>
<?php else: ?>
     <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>" ><?php the_title(); ?></a> <?php echo __("dal") . ' '.eo_get_the_start($format); echo __(" al") . ' '.eo_get_the_end($format);?>                
<?php endif ?>

Ho lasciato la riga di codice originaria per gli eventi che hanno durata giornaliera aggiungendo la versione modificata per visualizzare la data di inizio e di fine per gli eventi di più giorni.

La data di fine evento viene visualizzata a posteriori di un controllo sulla presenza del flag “Gioranta intera”, cosa che deve essere sempre attivata per gli eventi a singolo giorno.

Nel mio caso un’altra cosa scomoda e confusionaria  era l’orario che ho rimosso modificando il codice seguente

$format = ( eo_is_all_day() ? $date_format : $date_format.' '.$time_format );

in

$format = ( eo_is_all_day() ? $date_format : $date_format);

Con queste piccole e banali modifiche sono riuscito ad avere una lista di eventi funzionale adattata alle mie esigenze.
Se si decide di utilizzare il widget per avere la lista degli eventi nella sidebar e affini, è necessario modificare il file widget-event-list.php per uniformare la visualizzazione.