WordPress get_option gibt false zurück

Lesezeit: 2 Minuten

Ich habe ein WordPress-Plugin, das Einstellungen registriert wie:

register_settings("myplugin_settings","myplugin_option1");

und bei der Plugin-Aktivierung werden Optionen hinzugefügt wie:

add_option("myplugin_option1","");

Wenn ich dann die Option aktualisiere, wie:

update_option("myplugin_option1","something else");

und später versuchen, es aus der Datenbank zu bekommen:

$myoption = get_option("myplugin_option1");

get_option() gibt false zurück, sogar die Option existiert und der Wert wird aktualisiert.

Ich weiß, dass der Wert aktualisiert wird und die Option vorhanden ist, denn wenn ich die Abfrage zum Abrufen der Option ausführe, erhalte ich den Wert:

global $wpdb;
$query = 'SELECT * FROM wp_options WHERE option_name = "myplugin_option1";
$result = $wpdb->get_results($query);

Dies gibt mir den Wert zurück: “etwas anderes”

Zum Beispiel dieser Code:

 $option = get_option("myplugin_option1");
 if(false == $option){
    global $wpdb;
    $query = 'SELECT * FROM wp_options WHERE option_name = "myplugin_option1"';
    $result = $wpdb->get_results($query);
 }

Nachdem dieser Code ausgeführt wurde, enthält $result den Wert:

Array
(
   [0] => stdClass Object
      (
        [option_id] => 11752
        [option_name] => myplugin_option1
        [option_value] => something else
        [autoload] => yes
      )
)

Die Option existiert also und hat einen Wert, aber get_option() gibt false zurück.

Ich habe dieses Problem nur mit 3 Optionen und nur auf einer Seite, auf der mein Plugin installiert ist. Hat jemand eine Idee, warum get_option() false zurückgibt, sogar die Option befindet sich in der Datenbank und hat den Wert “etwas anderes”.

Das Problem dabei war, dass diese drei Optionen, mit denen ich Probleme hatte, irgendwie zweimal im wp-Cache zwischengespeichert wurden.

Eine Option wurde also zweimal zwischengespeichert, und update_options() hat immer eine dieser beiden aktualisiert und get_option() hat immer die andere mit einem leeren Wert zwischengespeichert.

Ich bin mir nicht sicher, wie das passiert ist, aber das Löschen des Cache hat mein Problem gelöst.

Sie sollten die Datei einschließen wp-blog-header.php in einer beliebigen externen Datei, um WordPress-Funktionen nutzen zu können. Diese Datei befindet sich in Ihrem WordPress-Stammordner.

  • Es ist enthalten und die WordPress-Funktionen funktionieren einwandfrei. Ich habe nur mit 3 Optionen ein Problem, bei allen anderen funktioniert es einwandfrei. Ich erhalte Optionen in einer Schleife und nur diese schlagen fehl.

    – Karpfen

    28. April 2015 um 8:25 Uhr

1392810cookie-checkWordPress get_option gibt false zurück

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy