WordPress: benutzerdefinierte Felder / Spezialfelder

In WordPress gibt es die Möglichkeit einem Post oder einer Seite Spezialfälder (benutzerspezifische Felder) anzufügen. Diese Felder ermöglichen so eine gesonderte Datenbankabfrage. So ist es z.B. möglich Seiten in eine Header und Footer-Kategorie einzuordnen.

In der PHP Datei kann dieses Feld anschließend abgefragt werden. Während eines Loops ist dies über die Funktion

get_post_meta

möglich. Ein Beispiel, welches sich auf ein benutzerspezifisches Feld mit dem Namen test bezieht sieht wie folgt aus:

$var = get_post_meta($post->ID, ‘test’, true);

In die Variable $var wird während des Loops der Wert aus dem Feld test gespeichert.

Sollte eine Splittung in Header- und Footer-Menü realisiert werden, so wäre dies über folgenden Code möglich:

$options = $wpdb->get_results(“SELECT post_id FROM $wpdb->postmeta WHERE meta_key = ‘Footer’ AND meta_value = ’1′” );

Alle Posts oder Seiten die das Feld Footer mit dem Wert 1 besitzen werden in die Variable $options gespeichert.

Die IDs können über eine Schliefe für eine Weiterverarbeitung in der Funktion wp_list_pages wie folgt bearbeitet werden:

foreach ( (array) $options as $option ) {

$footer .= $option->post_id.’,‘;

}

if (isset ($footer)) {

$footer  = substr($footer, 0, -1);

}

// Header

wp_list_pages(‘title_li=&depth=1&exclude=’.$footer.’&echo=1′);

// Footer

wp_list_pages(‘title_li=&depth=1&include=’.$footer.’&echo=1′);