Checkbox Undefinierter Indexerrors im Plugin

Ich erhalte einige Fehler beim Versuch, ein Kontrollkästchen innerhalb eines einfachen Plugins zu erstellen, das ich erstelle. Ich habe im Moment eine einfache Einstellungsseite. Die Fehler sind:

Unzulässiger String-Offset ‘single_images’

Und

Nicht definierter Index: single_images_zoom

Hier ist der Checkbox-Code. Jede Hilfe wäre willkommen.

<input id="iwmp_settings['single_images']" name="iwmp_settings['single_images']" type="checkbox" value="1"  />  <input id="iwmp_settings['single_images_zoom']" name="iwmp_settings['single_images_zoom']" type="checkbox" value="1"  />  

Das Problem mit dem ungültigen Zeichenfolgenoffset scheint von diesem Code-Snippet verursacht zu sein:

  

Vielen Dank

Solutions Collecting From Web of "Checkbox Undefinierter Indexerrors im Plugin"

Sie sollten keine Anführungszeichen um den Index für HTML-Namen setzen – sonst erhalten Sie am Ende 'single_images' (einschließlich einfacher Anführungszeichen) als PHP-Name (Sie $iwmp_options["'single_images'"] , was) manche mögen es für verwirrend halten) … zB:

 add_action( 'admin_init', function () { register_setting( 'iwmp_settings', 'iwmp_settings' ); add_settings_section( 'single_images', __( 'Single Images', 'iwmp_domain' ) , function () { $iwmp_options = get_option( 'iwmp_settings' ); // Note quotes around the PHP index, no quotes around the HTML index. // (Also id's should basically be alphanumeric with underscores/hyphens (for pre-HTML5 compatibility anyway).) ?>  />  
/> < ?php }, 'iwmp_settings' ); } ); add_action( 'admin_menu', function () { add_options_page( __( 'IWMP Settings', 'iwmp_domain' ), __( 'IWMP', 'iwmp_domain' ), 'manage_options', 'iwmp_settings', function() { ?>

< ?php _e( 'IWMP Settings', 'iwmp_domain' ); ?>

< ?php settings_fields( 'iwmp_settings' ); ?> < ?php do_settings_sections( 'iwmp_settings' ); ?>

< ?php } ); } );

Auch isset() hier auf Checkbox-Werte nach isset() , ist das einfach. Und wenn Sie sie manipulieren wollen, dann setzen Sie eine Variable zB $single_images = isset( $iwmp_options['single_images'] ); usw. oder verwenden Sie eine Wrapper-function. (Und als Randnotiz für Shortcode-Kompatibilität finde ich 1/0 handier dann true/false .)