Entrada

Cómo usar get_option y update_option en WordPress: guía práctica y ejemplos

¿Qué son get_option y update_option?

En pocas palabras:

  • get_option → sirve para leer un valor de la tabla de ajustes internos de WordPress.
  • update_option → sirve para guardar o actualizar dicho valor.

Son funciones esenciales cuando necesitas guardar configuraciones de un plugin, flags internos, contadores, preferencias ligeras, etc.

Lo mejor: no tienes que preocuparte de SQL, WordPress lo maneja todo 🔒.


¿Dónde se guardan realmente estas opciones?

Todas estas configuraciones se guardan en la tabla wp_options.
Bueno… wp_ si tienes el prefijo por defecto. Si no, será algo como abc47_options.

En esa tabla verás columnas como:

  • option_id
  • option_name
  • option_value
  • autoload

Cuando haces algo como:

1
update_option('mi_ajuste', 'Hola mundo');

Lo que WordPress guarda es:

option_name option_value autoload
mi_ajuste Hola mundo yes

Y cuando haces:

1
get_option('mi_ajuste');

WordPress recupera ese valor directamente desde la base de datos (o desde caché si ya está cargado).

Escoger de la base de datos

Cómo usar get_option: ejemplos prácticos 🧪

Ejemplo 1: obtener un valor simple

1
2
3
$modo = get_option('modo_web');

echo $modo; // Ejemplo de salida: "mantenimiento"

Si la opción no existe, devuelve false.

Ejemplo 2: obtener un valor con un valor por defecto

Esto es algo que uso a menudo:

1
2
3
$color = get_option('color_destacado', '#FF0000');

// Si 'color_destacado' no existe, devolverá '#FF0000'

Muy útil cuando quieres asegurarte de que siempre hay un valor válido.


Cómo usar update_option: ejemplos prácticos 🛠️

Ejemplo 1: guardar o actualizar un valor

1
update_option('modo_web', 'producción');

Si la opción ya estaba creada → la actualiza. Si no existía → la crea. (No hace falta hacer add_option, WordPress es listo 🧠✨)

Ejemplo 2: guardar un array

Puedes guardar arrays sin problema:

1
2
3
4
5
6
7
$ajustes = [
  'color' => 'azul',
  'tamaño' => 'grande',
  'mostrar_banner' => true
];

update_option('mi_configuracion', $ajustes);

Y al recuperarlo:

1
2
3
$config = get_option('mi_configuracion');

echo $config['color']; // azul

WordPress se encarga de serializar y deserializar automáticamente.


Ejemplo más completo: guardando la última fecha de actualización del plugin 📅

Este es un caso típico cuando desarrollas plugins:

1
2
// Guardamos la fecha actual
update_option('plugin_ultima_revision', current_time('mysql'));

Y cuando queremos mostrarla:

1
2
3
$fecha = get_option('plugin_ultima_revision', 'No hay registros');

echo "Última revisión: " . $fecha;
Actualizando opciones

Cosas importantes a tener en cuenta 📌

🔸 Evita guardar datos grandes

wp_options no está pensada para almacenar logs, listas de usuarios, ni contenido extenso.

🔸 Controla el autoload

Por defecto, muchos valores se cargan en cada petición. Si vas a almacenar algo grande o no necesario para todas las vistas, usa add_option() con autoload no.

🔸 Usa prefijos en tus opciones

Para evitar colisiones:

1
mi_plugin_nombre_opcion

❓ FAQ

¿Dónde se almacenan exactamente los valores guardados con update_option?

En la tabla wp_options (o el prefijo que uses), dentro de las columnas option_name y option_value.

¿get_option puede devolver un valor por defecto?

Sí. Si la opción no existe, puedes pasar un segundo parámetro como valor por defecto.

¿update_option crea la opción si no existe?

Sí. No solo actualiza: si la opción no existe, la crea automáticamente.

Esta entrada está licenciada bajo CC BY 4.0 por el autor.