Generieren von add_settings_section () ruft dynamisch auf

Ich habe einige functionen innerhalb von functions.php, die ich einfach durch viel kürzere functionen ersetzen könnte, wie zum Beispiel:

function register_sections() { add_settings_section('SOMETHING_settings', 'SOMETHING Settings', 'generate', 'SOMETHING_page' ); add_settings_section('SOMETHING2_settings', 'SOMETHING2 Settings', 'generate', 'SOMETHING2_page' ); add_settings_section('SOMETHING3_settings', 'SOMETHING3 Settings', 'generate', 'SOMETHING3_page' ); add_settings_section('SOMETHING4_settings', 'SOMETHING4 Settings', 'generate', 'SOMETHING4_page' ); (...) } add_action('admin_init', 'register_sections'); 

Ich schätze, dass die function, die den obigen Code ersetzt, so aussieht:

 function settings_sections() { $array = ('SOMETHING','SOMETHING2','SOMETHING3', 'SOMETHING4'); foreach($array as $section) { echo "add_settings_section('".$section."_settings','".$section." Settings','generate','".$section."_page' ) ;"; } 

Aber ich bin mir nicht sicher, wie ich diesen dynamisch erzeugten Inhalt initialisieren soll? Natürlich add_action('admin_init', 'settings_sections'); Die Ausgabe der Echos funktioniert auf allen Admin-Seiten, anstatt Abschnitte zu registrieren.

Solutions Collecting From Web of "Generieren von add_settings_section () ruft dynamisch auf"

Versuchen Sie es stattdessen:

 function settings_sections() { // array containing settings identifiers $array = ( 'SOMETHING', 'SOMETHING2', 'SOMETHING3', 'SOMETHING4' ); // loop through settings identifiers and generate settings sections foreach( $array as $v) { add_settings_section( $v . '_settings', $v . ' Settings', 'generate', $v . '_page' ); } } 

echo gibt einen String aus, Sie sollten add_settings_section() direkt aus der Schleife aufrufen.

Auch, NB: generate() ist nicht der beste Name für eine function, Sie sollten wirklich mit etwas gehen, das weniger wahrscheinlich ist, mit einer anderen function zu überlappen (Präfix es mit etwas)