Kann ich register_settings und unregister_setting verwenden, nachdem die Einstellungsseite geladen wurde?

Ich möchte auf der Einstellungsseite abhängig von der Benutzeraktion einige Einstellungsfelder dynamisch hinzufügen. Ich plane, diese neuen Felder dynamisch zu registrieren, sobald der Benutzer danach fragt und den entsprechenden HTML-Code mit jQuery anzeigt. Ist es möglich, Einstellungen zu registrieren, sobald Sie bereits auf der Einstellungsseite sind? Gibt es auch einen besseren Weg, dies zu tun?

Solutions Collecting From Web of "Kann ich register_settings und unregister_setting verwenden, nachdem die Einstellungsseite geladen wurde?"

Besser, so etwas zu vermeiden. Die Einstellungs-API hat zwei “Gesichter”, eine die Benutzeroberfläche und die andere die Formularübertragung. Die /wp-admin/options.php Formulars erfolgt unter einer anderen URL als die Benutzeroberfläche ( /wp-admin/options.php ). Daher wird der von der Benutzeraktion abhängige Code nicht ausgeführt, und die Behandlung der Einstellungen in der /wp-admin/options.php möglicherweise fehl.

Sie müssen alle Felder richtig registrieren, und dann können Sie CSS oder JS verwenden, um die relevante Benutzeroberfläche ein- / auszublenden.

Sie können die Einstellungs-API wie folgt verwenden:

  < ?php // ------------------------------------------------------------------ // Add all your sections, fields and settings during admin_init // ------------------------------------------------------------------ // function eg_settings_api_init() { // Add the section to reading settings so we can add our // fields to it add_settings_section( 'eg_setting_section', 'Example settings section in reading', 'eg_setting_section_callback_function', 'reading' ); // Add the field with the names and function to use for our new // settings, put it in our new section add_settings_field( 'eg_setting_name', 'Example setting Name', 'eg_setting_callback_function', 'reading', 'eg_setting_section' ); // Register our setting so that $_POST handling is done for us and // our callback function just has to echo the  register_setting( 'reading', 'eg_setting_name' ); } // eg_settings_api_init() add_action( 'admin_init', 'eg_settings_api_init' ); // ------------------------------------------------------------------ // Settings section callback function // ------------------------------------------------------------------ // // This function is needed if we added a new section. This function // will be run at the start of our section // function eg_setting_section_callback_function() { echo '

Intro text for our settings section

'; } // ------------------------------------------------------------------ // Callback function for our example setting // ------------------------------------------------------------------ // // creates a checkbox true/false option. Other types are surely possible // function eg_setting_callback_function() { echo ' Explanation text'; }

Danach können Sie jQuery oder Javascript verwenden, um dieses Einstellungsfeld / Abschnitt je nach Benutzeraktion ein- / auszublenden

Überprüfen Sie diesen Link für mehr