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:

Dieser Inhalt ist nur eingeschränkt verfügbar. Melden Sie sich vorher an.

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:

Dieser Inhalt ist nur eingeschränkt verfügbar. Melden Sie sich vorher an.

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:

Dieser Inhalt ist nur eingeschränkt verfügbar. Melden Sie sich vorher an.

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

Dieser Inhalt ist nur eingeschränkt verfügbar. Melden Sie sich vorher an.

Ein Aufruf wie

[mm_current_date_time time_format="G:i"]

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