Informativa sui cookie

Salta al contenuto

Calcolare la tua età e inserirla in una pagina WordPress

Questo articolo ha oltre sei mesi di vita, quindi, mi raccomando, verifica le informazioni contenute in quanto potrebbero essere ormai obsolete.

UPDATE: ho aggiunto i controlli sulla validità della data di nascita

Spesso vedo nelle pagine about che inseriamo o la nostra età o la data di nascita. (inclusa la mia pagina)

Il problema è che non le aggiorniamo mai, per quanto riguarda l’età.

Ho quindi creato un metodo per il mio plugin di utility per far si che esca tutto in automatico.

Vi spiegherò anche come convertilo in funzione procedurale per inserirla nel vostro file functions.php

La versione minima di PHP perché funzioni è la 5.3

Questo è il metodo completo.

public function calculate_age( $atts ) {

 // Attributes
 $atts = shortcode_atts(
 array(
 'born_date' => 'null',
 ),
 $atts,
 'age'
 );

 if ( 10 == strlen( $atts['born_date'] ) ){

 if ( preg_match( "/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/", $atts['born_date'] ) ) {

 //now date
 $now = new DateTime( date( 'Y-m-d', time() ) );

 //birthday date
 $bd = new DateTime( $atts['born_date'] );

 //difference
 $difference = $now->diff( $bd );

 //Create the stings for strtotime to localize day and month name
 $born_date = explode( '-', $atts['born_date'] );
 $born_date = $born_date['1'] . '/' . $born_date['2'] . '/' . $born_date['0'];

 //set the right locale to have day and month name in the right language
 setlocale( LC_TIME, get_locale() );
 $born_date = utf8_encode( strftime( "%A %d %B %Y", strtotime( $born_date ) ) );

 $my_age = ' sono nato ' . $born_date . ' ho ' . $difference->y . ' anni ' . $difference->m . ' mesi e ' . $difference->d . ' giorni e cammino su questa terra da ' . $difference->days . ' giorni';

 } else {

 $my_age = __( 'Date Format ERROR', 'wolly' );
 }

 } else {

 $my_age = __( 'Date Format ERROR', 'wolly' );
 }

 return $my_age;

}

Nel magic method

__construct

andiamo a dichiarare lo shortcode

add_shortcode( 'age', array( $this, 'calculate_age' ) );

Ora basta inserire nella pagina, o nell’articolo, nella posizione dove vogliamo che appaia la nostra età, questo shortcode (ricordatevi di inserirlo in [parentesi quadre])

age born_date="1966-12-27"

age è il nome dello shortcode e born_date è la vostra data di nascita in formato aaaa-mm-gg

Il risultato, nel mio caso, è: sono nato martedì 27 dicembre 1966 ho 50 anni 3 mesi e 19 giorni e cammino su questa terra da 18372 giorni

Potete vederlo in funzione anche nella mia pagina perché Wolly.

Se volete inserirlo nel functions.php del vostro tema, invece che in una classe di un vostro plugin, il codice è quello che segue:


function wolly_calculate_age( $atts ) {

// Attributes
$atts = shortcode_atts(
array(
'born_date' => 'null',
),
$atts,
'age'
);

if ( 10 == strlen( $atts['born_date'] ) ){

 if ( preg_match( "/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/", $atts['born_date'] ) ) {

 //now date
 $now = new DateTime( date( 'Y-m-d', time() ) );

 //birthday date
 $bd = new DateTime( $atts['born_date'] );

 //difference
 $difference = $now->diff( $bd );

 //Create the stings for strtotime to localize day and month name
 $born_date = explode( '-', $atts['born_date'] );
 $born_date = $born_date['1'] . '/' . $born_date['2'] . '/' . $born_date['0'];

 //set the right locale to have day and month name in the right language
 setlocale( LC_TIME, get_locale() );
 $born_date = utf8_encode( strftime( "%A %d %B %Y", strtotime( $born_date ) ) );

 $my_age = ' sono nato ' . $born_date . ' ho ' . $difference->y . ' anni ' . $difference->m . ' mesi e ' . $difference->d . ' giorni e cammino su questa terra da ' . $difference->days . ' giorni';

 } else {

 $my_age = __( 'Date Format ERROR', 'wolly' );
 }

 } else {

 $my_age = __( 'Date Format ERROR', 'wolly' );
 }

 return $my_age;

}

add_shortcode( 'age',  'wolly_calculate_age' );

Fate attenzione perché NON ho implementato controlli, almeno per ora, sulla validità del formato della data che andate a inserire nello shortcode, quindi se non mettete il formato corretto potete incorrere in output inaspettati.

Ricapitolando.

Creiamo uno shortcode

Utilizziamo datetime

Impostiamo il locale riprendendolo dalle impostazioni della nostra installazione WordPress.

Se avete dubbi, domande o se volete migliorare questo codice, i commenti sono per voi.

Ho una Newsletter che parla di WordPress

Questo è l'archivio

Iscriviti alla mia Newsletter

Published inWordpress

Un commento

  1. […] adattarla. Quindi hai tre opzioni: evita questo dato, aggiornalo ogni anno, usa lo shortcode di paolovalenti.info: in questo contenuto, infatti, trovi le istruzioni per modificare in automatico questo […]

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Pagina 1 di 11
%d blogger hanno fatto clic su Mi Piace per questo: