Wie kann man eine Variable als Callback-functionsname für add_settings_field verwenden?

Ich versuche, die Menge an Code, die in meiner Thema-Optionen-function ist, zu reduzieren. Ich füge meine Einstellungen wie folgt hinzu: add_settings_field ($ k, $ v, $ callback, $ the_options, $ the_group, $ args);

Das funktioniert für mich in jeder Hinsicht, solange ich den Namen der function schreibe. Zum Beispiel, wenn $ callback = ‘awesome_callback’ – und ich eine function namens erstellen

awesome_callback(){ echo 'something'}; 

Es gibt keinerlei Probleme.

Die folgende Schleife funktioniert auch und durchläuft das Array von Optionen, um die Einstellungsfelder zu erstellen .. und ergreift alle notwendigen Daten. es gibt auch genau wieder, was ich denke, dass mein callback benannt werden sollte. Im Moment habe ich jedoch eine Reihe von Callback-functionen außerhalb dieser Schleife, die alle bis auf den Namen der function genau gleich aussehen. 🙁

 foreach($theOptions as $k=>$v) { add_settings_field($k,$v,$callback,$the_options,$the_group,$args); echo $callback; } 

Bare mit mir. Ich hoffe, jemand hat dieses Problem schon einmal gesehen und wird mich wissen lassen, dass mir etwas offensichtlich fehlt. Das Folgende funktioniert auch in meiner WordPress-Umgebung außerhalb der gleichen Schleife.

 $callback = 'awesome_callback'; $callback = function() { echo 'awesome callback'; } $callback(); 

Das Folgende gibt jedoch einen Fehler an die unbekannte Callback-function zurück, obwohl beim Ausgeben der $ -Callback-Variable die exakte Zeichenfolge, auf die ich in der Callback-function referenziere, wieder ausgegeben wird. Ich denke, ich übertreibe den callbackwert … ???

 foreach($theOptions as $k=>$v) { $callback = $k.'_callback'; add_settings_field($k,$v,$callback,$the_options,$the_group,$args); $callback = function() { echo 'Testing the callback !!! 
'; }; }

Kann jemand eine Lösung für das Durchlaufen einer Reihe von Optionen auf eine Weise erklären, die es ermöglicht, die callbackfunktion innerhalb der Schleife aufzurufen, ohne sie hart codieren zu müssen? Ist das etwas, das mit einer class getriggers werden könnte? Ich kann meinen Kopf nicht drängen.

Solutions Collecting From Web of "Wie kann man eine Variable als Callback-functionsname für add_settings_field verwenden?"

Verwenden Sie keine anderen Callbacks, verwenden Sie stattdessen den sechsten Parameter für add_settings_field() . Das ist ein Array und Sie können hier beliebige Daten an den Callback übergeben.

Beispiel:

 foreach( $theOptions as $k => $v ) { add_settings_field( $k, $v, 'my_callback', $the_options, $the_group, array ( 'special' => $k ) ); } function my_callback( $args ) { var_dump( $args['special'] ); switch ( $args['special'] ) { case 'foo': // do something break; case 'bar': // do something else break; default: // default handler } }