Eigene Eingabefelder zu Wordpress Post Formular hinzufügen

Mit der Wordpress-Funktion add_meta_box kann man zum Wordpress-Post-Formular eigene Boxen hinzufügen und darin dann Eingabefelder plazieren.

Seit Version 3 ist das allerdings ein wenig komplizierter geworden, man braucht nun drei Funktionen die sich nacheinander aufrufen:

  1. Wordpress-Action „init“ verküpfen mit einer eigenen Funktion (bei mir „my_init“)
  2. Darin dann die Wordpress-Action „admin_menu“ verknüpfen mit einer weiteren eigenen Funktion (bei mir „add_boxes“)
  3. In dieser kann man dann endlich mit add_meta_box die tatsächlichen Boxen hinzufügen
<?php
	add_action('init', 'my_init');
	function my_init()
	{
		add_action('admin_menu', 'add_boxes');
	}
 
	function add_boxes()
	{
		add_meta_box('my_field_id', 'Boxtitel', 'my_field_function', 'post', 'normal', 'high');
	}
 
	function my_field_function()
	{
?>
		<label for="my_field">Beschreibung</label><br />
		<input type="text" id="my_field" name="my_field" value="" />
<?php
	}
?>

Zu den Parametern die man man der add_meta_box mitgibt:

  1. id: steht dann im div der Box als id drin
  2. title: Steht im Kopf der Box als Titel
  3. callback: ist der Name deiner eigenen PHP_Funktion mit der du den Inhalt deiner Box ausgibst (bei mir „my_field_function“)
  4. post_type: Bei welchem Wordpress-Post-Typ deine Box im Formular gezeigt werden soll, möglich sind: page, post, link oder ein custom_post_type
  5. context(optional): Wo im Formular deine Box gezeigt wird. Möglich sind:
    • normal: die Box wird in der linken, der breiten Spalte unter dem großen Editor angezeigt
    • advanced: wie normal, nur weiter unten und man muss die Box damit man sie sieht anfangs oben unter „Optionen einblenden“ er anhakeln.
    • side: Die Box wird in der rechten, der schmaleren Spalte angezeigt
  6. priority (optional): Regelt ungefähr die Reihenfolge in der die Boxen angezeigt werden. Möglich sind hier „high“, „core“, „default“ oder „low
  7. callback_args (optional): Hier kannst du einen Array übergeben der dann an deine Callback-Funktion weitergereicht wird.

Originale Funktionsbeschreibung von add_meta_box in der Wordpress Doku