9.2. Standardwerte von Shortcode Attributen

Nehmen wir an, ein Benutzer nutzt im Editor einen Shortcode mit mehreren Attributen:

[mm_current_date_time date_format="d.m.Y" time_format="G:i"]

Ihre Funktion könnte so aussehen:

You’re not allowed to see this content. Please log in first.

Funktioniert wunderbar. Zumindest so lange bis der Benutzer immer brav beide Attribute angibt. Was allerdings, wenn er nur einen oder keinen davon angibt?

[mm_current_date_time time_format="G:i"]

PHP wird Ihnen eine Error-Nachricht anzeigen:

PHP Notice: Undefined index: date_format in /www/wp-content/plugins/mm-plugin/mm-plugin.php on line X

Das liegt daran, dass der Schlüssel date_format im Array des Parameters $atts nicht existiert. Das wiederum hat zur Folge, dass Sie alle einzelnen Parameter auf ihre Existenz überprüfen müssten:

You’re not allowed to see this content. Please log in first.

Das ist nötig aber auch lästig. Denn die Schreibarbeit wird länger, je mehr Parameter Sie zulassen. Aus diesem Grund hat WordPress die Funktion shortcode_atts() eingeführt:

<?php
function shortcode_atts( $pairs, $atts, $shortcode = '' ) {
	...
}
?>

Es gilt:

You’re not allowed to see this content. Please log in first.

Beispiel (die isset()-Anweisungen entfallen komplett):

You’re not allowed to see this content. Please log in first.

Ein Aufruf wie

[mm_current_date_time time_format="G:i"]

erzeugt nun keinen PHP-Fehler mehr. Stattdessen wird der Standardwert des Zeitformats eingesetzt.