Tengo un complemento de wordpress que registra configuraciones como:
register_settings("myplugin_settings","myplugin_option1");
y en la activación del complemento está agregando opciones como:
add_option("myplugin_option1","");
Luego, si actualizo la opción, como:
update_option("myplugin_option1","something else");
y luego intente obtenerlo de la base de datos:
$myoption = get_option("myplugin_option1");
get_option() devuelve falso, incluso la opción existe y el valor se actualiza.
Sé que el valor se actualiza y la opción existe porque cuando ejecuto la consulta para obtener la opción obtengo el valor:
global $wpdb;
$query = 'SELECT * FROM wp_options WHERE option_name = "myplugin_option1";
$result = $wpdb->get_results($query);
Esto me devuelve el valor: “algo más”
Por ejemplo este código:
$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);
}
Después de ejecutar este código, $resultado contendrá valor:
Array
(
[0] => stdClass Object
(
[option_id] => 11752
[option_name] => myplugin_option1
[option_value] => something else
[autoload] => yes
)
)
Entonces, la opción existe y tiene valor, pero get_option() devuelve falso.
Tengo este problema solo con 3 opciones y solo en un sitio donde está instalado mi complemento. ¿Alguien tiene alguna idea de por qué get_option () devuelve una opción falsa incluso en la base de datos y tiene el valor “algo más”.
El problema con esto fue que esas tres opciones con las que tuve problemas se almacenaron dos veces en caché en wp cache.
Entonces, una opción se almacenó en caché dos veces, y update_options() siempre actualizaba una de estas dos y get_option() siempre obtenía la otra en caché con un valor vacío.
No estoy seguro de cómo sucedió esto, pero borrar el caché resolvió mi problema.
debes incluir el archivo wp-blog-header.php
en cualquier archivo externo para poder utilizar las funciones de WordPress. Ese archivo está en su carpeta raíz de wordpress.
-
Está incluido, y las funciones de wordpress funcionan bien. Tengo un problema solo con la opción 3, para todas las demás funciona bien. Obtengo opciones en un ciclo y solo esas fallan.
– carpianos
28 de abril de 2015 a las 8:25