Si usas WordPress como desarrollador sabrás que hay varias formas de almacenar datos sobre su base de datos sin necesidad de crear nuevas tablas. Hoy os voy a explicar una de ellas. Aparte de esta que voy a explicaros, existen básicamente dos más:
Estructura
Esta en concreto usa la tabla opciones, wp_options o prefijo_options y para entender cómo usar las funciones y el objetivo de la misma, lo mejor es ver su forma. Esta tabla tiene la siguiente estructura:
Como veis, tenemos la estructura típica de las tablas hash: clave / valor con: option_name / option_value tan de moda ahora en bases de datos no relacionales y tan útiles.
Para qué sirve
A priori, la idea es: tengo un plugin o theme y quiero guardar un valor, por ejemplo, quiero guardar el color de fondo de los botones pues guardaría:
Sin embargo, gracias a la posibilidad de serializar datos, podemos meter arrays y listas en el valor, por lo que las posibilidades entonces crecen enormemente, en vez de guardar el color de fondo de los botones, podríamos guardar todas las opciones del tema:
Cómo se usa
Tenemos las siguientes funciones, aunque hay más, me centro en las que suelo usar.
update_option($nombre_opción, $valor)
Tiene la enorme ventaja respecto a add_option de ser más flexible y valer tanto para guardar un dato como para actualizarlo. Si no existe lo crea automáticamente. El problema es que marcará autoload como verdadero y puede que no nos interese, por lo que habría que usar add_option que sí permite especificarlo (tienes aquí un ejemplo de cómo hacerlo).
Si valor es “sencillo”, lo guarda como tal, si es un array u objeto, lo guarda serializado (de forma transparente a nosotros).
Documentación y ejemplos en el enlace anterior que dirige a la página de la función en el Codex.
get_option($nombre_opción, $valor_por_defecto)
Recupera un valor por su nombre, si no lo encuentra, podemos pedirle que devuelva un valor por defecto. Si el dato es un array u objeto, automáticamente hará el proceso inverso a la serialización de forma transparente para nosotros.
Ejemplos, referencia completa y documentación como siempre en el Codex.
delete_option($nombre_opción)
Borra una opción de la base de datos por su nombre, útil para hacer uso de ella cuando desactivas un plugin o tema y no quieres dejar rastro. La referencia, aquí.
Si trabajas a diario con Claude Code, seguramente te haya pasado: estás a mitad de…
Ver comentarios