Altersangabe automatisch berechnen lassen

Letzte Woche ging es um die automatische Ausgabe und aktualisieren der Beitrags und Kommentar Anzahl. Wenn wir schon bei vereinfachen sind, warum dann nicht auch gleich noch die Altersangaben berechnen lassen.

Ich mache das z.B. auf meiner über mich Seite und muss jetzt diese Angabe nicht mehr anfassen.

Gerade wenn du vielleicht mehrere Autoren in deinem WordPress Blog hast kann das sehr hilfreich sein. Denn wenn du alle auf einer Team Seite oder so vorstellst, kannst du die Altersangabe jetzt mit einem Shortcode lösen.

/**
 * Lebensalter berechnen und ausgeben [ckx_age birthday="dd.mm.yy"]
 */
function ckx_altersberechnung_function( $atts, $content = null )
{
    $age = '';

    extract( shortcode_atts( array(
        'birthday' => '',
        'prefix' => '',
        'postfix' => ''
    ), $atts ) );

    $dateFormat  = "d.m.Y";
    $datePattern = '/^([123]0|[012][1-9]|31).(0[1-9]|1[012]).(19[0-9]{2}|2[0-9]{3})$/';
    if (preg_match($datePattern, $birthday, $matches))  {
        $day   = $matches[1];
        $month = $matches[2];
        $year  = $matches[3];
        $actDate = explode(".", date($dateFormat));

        $age = $actDate[2] - $year;
        if ($actDate[1] < $month ||
            ($actDate[1] == $month && $actDate[0] < intval($day))) {
            $age--;
        }
        $age = $prefix . $age . $postfix;
    }
    return $age;
}

add_shortcode('ckx_age', 'ckx_altersberechnung_function');

Diesen Beispiel Code in deine functions.php innerhalb deines Child Themes einsetzen und schon kannst du den angegebenen Shortcode nutzen.

Auch hier setze ich wieder auf eine sehr minimalistische Ausführung. Der Code-Snippet gibt wirklich nur die reine Zahl aus. Das styling und den Text ringsherum bestimmst du über den Editor.

Diesen Shortcode kannst du jetzt bei jedem Autor hinterlegen und musst nicht nach jedem Geburtstag das Alter ändern. Wieder etwas Arbeit gespart.


Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert