Opciones individuales VS Arrays de opciones en WordPress

PHPWordPress

Las opciones pueden ser guardadas en la base de datos como opciones individuales o como arrays de opciones. Si guardamos una opción individual, tenemos una clave que se referirá únicamente a ese valor, pero si almacenamos varias opciones en el espacio de una opción individual mediante un array serializado, tendremos todo un conjunto de opciones con solo una clave.

Si utilizas muchas opciones relacionadas entre ellas, notarás un gran incremento de rendimiento almacenando las opciones como arrays serializados, ya que acceder individualmente a cada opción almacenada en la base de datos implica realizar muchas transacciones, lo cual puede ser bastante costoso en lo referente al tiempo y consumo de recursos del servidor. Quizás no lo notarás demasiado cuando leas los valores, pero sí cuando insertes opciones o actualices varios registros a la vez.

Cuando almacenas o lees un array de opciones, solamente se realizará una transacción, algo que no puede recibir otro calificativo más que el de ideal. Si controláis algo de programación, veréis que lo que explicamos en este artículo es muy simple, pero en este blog escribimos también para personas con conocimientos muy básicos. Vamos a ver cómo almacenar y leer un array de opciones.

Guardar un array de opciones

Muy fácil, ya que el proceso es exactamente el mismo que el de guardar una sola opción. Primero definimos el array:

$array_de_opciones = array(
    'nombre' => 'John',
    'apellido' =>'Rambo',
    'color_favorito' => 'azul'
);

Ahora vamos a almacenarlo en la base de datos:

update_option( 'opciones_de_mi_plugin', $array_de_opciones );

Obtener un array de opciones de la base de datos

De nuevo, el procedimiento es el mismo que el de obtener una sola opción.

$array_de_opciones = get_option( 'opciones_de_mi_plugin' );

Una vez obtenidas las opciones, podemos trabajar directamente con el array o asignarlo a variables individuales.

$nombre = $array_de_opciones[ 'nombre' ];
$apellido = $array_de_opciones[ 'apellido' ];
$color_favorito = $array_de_opciones[ 'color_favorito' ];

Avatar de Edu Lazaro

Edu Lázaro: Ingeniero técnico en informática, actualmente trabajo como desarrollador web y programador de videojuegos.

👋 Hola! Soy Edu, me encanta crear cosas y he redactado esta guía. Si te ha resultado útil, el mayor favor que me podrías hacer es el de compatirla en Twitter 😊

Si quieres conocer mis proyectos, sígueme en Twitter.

Deja una respuesta

“- Hey, Doc. No tenemos suficiente carretera para ir a 140/h km. - ¿Carretera? A donde vamos, no necesitaremos carreteras.”