Problem mit den Anzeigedaten von get_option

Ich habe ein Problem mit der function get_option. Ich habe Optionen Seite mit einem Feld zum Testen in Form erstellt. Alles, was Daten in der database speichert, aber wenn ich versuche, es anzuzeigen, bekomme ich “Undefined index”, aber dieser Index existiert im Array get_option:

Array ( ['turn_on'] => 1 ) 

Wenn ich versuche:

 print_r($variable); 

Ich bekomme etwas wie oben, aber wenn ich versuche:

 print_r($variable['turn_on']); 

Ich bekomme Undefined Index, weiß jemand, warum das funktioniert so und wie kann ich es beheben?

// Bearbeiten

class

 if (!class_exists('GoToTopOrBottom')) { class GoToTopOrBottom { private $options; public function __construct() { $this->parent_slug = 'wtyczki'; $this->slug = 'go-to-top-or-bottom'; add_action('admin_menu', [$this, 'addSubpage']); add_action('admin_init', [$this, 'registerFields']); } public function addSubpage () { add_submenu_page( $this->parent_slug, 'Przejście w górę lub dół', 'Góra lub dół', 'manage_options', $this->slug, [ $this, 'view' ] ); } public function view() { require_once(plugin_dir_path(__DIR__) . '/views/go-to-top-or-bottom/go-to-top-or-bottom.php'); } public function registerFields() { register_setting( 'go_to_top_or_bottom_group', 'go_to_top_or_bottom' ); add_settings_field( 'turn_on', null, null, $this->slug ); } } if (is_admin()) { new GoToTopOrBottom; } } 

Und Formular auf der Admin Optionsseite anzeigen

 

Powrót do góry lub dołu strony


options = get_option('go_to_top_or_bottom'); settings_fields('go_to_top_or_bottom_group'); ?>
 options['turn_on']); ?> 

test

Solutions Collecting From Web of "Problem mit den Anzeigedaten von get_option"

Sie get_option('go_to_top_or_bottom'); den Wert von get_option('go_to_top_or_bottom'); als eine Eigenschaft in den $this->options , wenn Sie also versuchen, es so zu drucken print_r($this->options['turn_on']); Sie erhalten den Indexerrors, weil dies eine Eigenschaft ist !!!

Der richtige Weg ist $this->options['turn_on']=get_option('go_to_top_or_bottom');

Aktualisieren

Ich sehe, dass die $options eine private Bedeutung sind, dh Sie können nicht außerhalb der class darauf zugreifen.

Eine Lösung ändert den Typ in public oder eine andere Eigenschaft als public .

Wenn Sie die Class nicht ändern möchten, können Sie eine Variable erstellen, um sie in der Ansichtsdatei wie folgt zu verwenden:

$options=get_option('go_to_top_or_bottom');

Und $options["'turn_on'"]; auf sie mit $options["'turn_on'"]; Beachten Sie die einfachen Anführungszeichen (Dies liegt an der Serialisierung mit den zitierten Namen).