Thomas Maier | Magento & WordPress Develover post@webzunft.de | +49 162 9313 708

Antworten auf die Fragen – nicht nur meiner Kunden 

RSS
Home WordPress WordPress für Entwickler Einfache Vorauswahl von Feldern bei WordPress

Einfache Vorauswahl von Feldern bei WordPress

Manchmal lohnt sich der Blick in den Quellcode. Dabei stieß ich neulich auf drei Funktionen, die die häufig wiederkehrende Anforderung des Vorselektierens von Auswahllisten, Radio-Buttons und Checkboxen erleichtern.

Das Problem

Wer mit Auswahllisten, Radio-Buttons und Checkboxen arbeitet, der kennt das Problem der Vorauswahl von einem der verschiedenen vorhandenen Felder für den Fall, dass z.B. eines davon schon vorher vom Nutzer ausgewählt wurde.

So sieht der Quellcode vorher aus.

<select name="options[foo]">
    <option value="1" <?php if ( $options['foo'] == 1 ) echo 'selected="selected"'; ?>>1</option>
    <option value="2" <?php if ( $options['foo'] == 2 ) echo 'selected="selected"'; ?>>2</option>
    <option value="3" <?php if ( $options['foo'] == 3 ) echo 'selected="selected"'; ?>>3</option>
</select>

Bzw. die hier zentrale Logik ist

<?php if ( $options['foo'] == 1 ) echo 'selected="selected"'; ?>

Die Lösung in WordPress

Die Funktion selected() ist quasi die Kurzform für den oben genannten Vergleich. Und so ersetzt es die oben genannte Langform.

<?php selected( $options['foo'], 1 ); ?>

Dabei ist das erste Parameter der neue Wert und der zweite ein zu vergleichender. In der Praxis ist das etwa ein Default-Wert oder der Wert, den der Nutzer früher schon einmal eingestellt hatte. Das erste Beispiel sieht dann in Langform so aus:

<select name="options[foo]">
    <option value="1" <?php selected( $options['foo'], 1 ); ?>>1</option>
    <option value="2" <?php selected( $options['foo'], 2 ); ?>>2</option>
    <option value="3" <?php selected( $options['foo'], 3 ); ?>>3</option>
</select>

Parallel zu selected() für Auswahllisten und Checkboxen gibt es noch checked() für Checkboxen und Radio-Buttons. Interessant dabei ist, dass WordPress diese Funktionen schon seit Version 1.0.0 mitbringt. Seit WordPress 3.0.0 gibt es parallel dazu noch disabled() für Elemente, deren Funktionalität im HTML deaktiviert werden sollen.
Die Code-Beispiele stammen aus dem WordPress-Codex.

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 

Schreibe einen Kommentar

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