Drücke „Enter”, um zum Inhalt zu springen.

Automatische Aktualisierung von Daten in WordPress

FWorkx 0

Beim Erstellen der ersten Seiten für diese Website bin ich auch schon in mein erstes Problem gelaufen. Ich wollte gerne mein Alter angeben, ohne jedoch jedes Jahr an meinem Geburtstag manuell die Seite zu aktualisieren. Aber wir leben im 21. Jahrhundert, da muss es also eine Lösung für geben.

Relativ schnell wurde ich auf Shortcodes und eigene Plugins geleitet. Nach ein wenig Suche bin ich dann auf folgende Seite gestoßen, die mir einen guten Leitfaden an die Hand gegeben hat:

Zunächst bin ich der Seite gefolgt und habe den „current_year“ Shortcode implementiert. Gebrauchen kann man diesen sehr sicher mal. Ich habe also unter /wp-content/plugins/ einen neuen Ordner wp-custom-shortaction erstellt und in diesem die neue Datei wp-custom-shortaction.php angelegt.
Darauf wurde der Header in die Datei kopiert und angepasst:

<?php

/*
Plugin Name:  wp-custom-shortaction
Version: 1.0
Description: Add custom shortaction codes.
Author: Yves Foltys
Author URI: https://www.fworkx.de/
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: wp-custom-shortcodes
*/

?> 

Anschließend noch im WordPress-Dashboard das Plugin aktiviert und schon konnte der erste wirkliche Code eingefügt werden.

/**
 * [current_year] returns the Current Year as a 4-digit string.
 * @return string Current Year
*/

add_shortcode( 'current_year', 'fworkx_year' );
function fworkx_init(){
 function fworkx_year() {
 return getdate()['year'];
 }
}
add_action('init', 'fworkx_init');

Das ganze noch mal speichern und schon konnte der Shortcode [current_year] getestet werden. Was soll ich sagen, es funktioniert!

Also auf zum nächsten „Problem“: Jetzt möchte ich gerne mein Alter automatisch ausgeben. Dazu muss das Geburtsdatum übergeben und die Differenz berechnet werden. Die bereits genannte Seite führte direkt als nächstes die Übergabe von Parametern ein. Noch ein bisschen Google dazu und die nächste Funktion stand. Der fertige Code sah dann wie folgt aus:

<?php

/*
Plugin Name:  wp-custom-shortaction
Version: 1.0
Description: Add custom shortaction codes.
Author: Yves Foltys
Author URI: https://www.fworkx.de/
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: wp-custom-shortcodes
*/

/**
 * [current_year] returns the Current Year as a 4-digit string.
 * @return string Current Year
*/
add_shortcode('current_year', 'fworkx_year');

/**
 * [age birthday='<date>'] returns the Current age as a string.
 * @return string Age
*/
add_shortcode('age', 'fworkx_age');

function fworkx_init(){
    function fworkx_year() {
        return getdate()['year'];
    }

    function fworkx_age($atts) {
        $a = shortcode_atts(array('birthday' => ''), $atts);
        return date_diff(date_create($a['birthday']), date_create('now'))->y;
    }
}
add_action('init', 'fworkx_init');
?>

Es werden also zunächst die Shortcodes (current_year und age) sowie deren Handler-Funktion (fworkx_year und fworkx_age) definiert.
fworkx_init ist die Wrapper-Funktion, die die Handler-Funktionen enthält und an init angehangen wird. Schlussendlich wird dann die WordPressfunktion add_action genutzt um fworkx_init an init anzuhängen und so nach dem Laden von WordPress aufzurufen.

Der Funktion fworkx_age wird das Attribut birthday übergeben um das Alter zu berechnen. Dies wird dann mit php-Mitteln bewerkstelligt.

Final dann der letzte Test auf der Seite „Über mich“ mit dem folgenden Code:

Hallo, ich bin [age birthday="01.01.1983"] Jahre alt, glücklich verheiratet und stolzer Vater von drei Kindern ([age birthday="01.01.2012"], [age birthday="01.01.2014"] & [age birthday="01.01.2016"] Jahre alt).

Vielleicht kann ich so dem einen oder anderen weiter helfen. Bei Fragen oder Anregungen, stehe ich gerne bereit.

Schreibe einen Kommentar

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