Plugins (VII) Ajuste de plugins

La mayoría de los plugins cuentan con una página de configuración para que se puedan elegir los parámetros de funcionamiento, acciones que realizan… sin tener que modificar el código a pelo. Pero para que hagan estas funciones es necesario que estos plugins puedan guardar y recuperar las opciones, y eso es lo que vamos a ver hoy, el ajuste de plugins de WordPress

Consideraciones antes de crear las opciones de ajuste de plugins

Antes de crear nuestras opciones para los plugins es recomendable seguir unas normas para evitar problemas con el espacio de nombres que puede dar como resultado errores en las salidas de nuestro sistema, por ello se recomienda que:

  • Cada plugin mantenga un prefijo único para todas sus propiedades, haciendo que todas ellas comiencen por este prefijo, como por ejemplo plwpej_ de este modo se le puede dar exclusividad al plugin haciendo que el nombre de la propiedad no pise o sea pisada.
  • Si un plugin tiene varias opciones es recomendable guardarlas en una matriz, de este modo es mucho más sencillo seguir la lógica del código.

Las opciones no son solo exclusivas de los plugins, los temas también pueden crear opciones para almacenar datos concretos, de hecho muchos de los temas actuales mantienen una página de configuración donde se configuran sus opciones.

Guardar modificar las opciones de plugins

Cuando nos vemos en la situación de que un plugin deba de guardar o editar diferentes opciones de configuración, WordPress nos permite usar dos funciones para su configuración: add_option() y update_option(), aunque nosotros vamos a ver en profundidad update_option() ya que ambas permiten crear opciones pero esta ademas nos permite editar y eliminar.

Para ejecutarla es tan sencillo como invocarla de la siguiente forma:

<?php update_option('nombre_opcion', 'valor_opcion'); ?>

Como vemos tiene dos parámetros:

  • El primero nos dice el nombre de la opción que queremos guardar
  • El segundo nos dice el valor de la opción a guardar, que puede ser un valor, un array, un objeto o un valor serializado.

Recuperar el valor de una opción

Para recuperar el valor de una opción es tan sencillo como utilizar la función get_option() que lleva como parámetro el nombre de la opción a recuperar:

<?php get_option('nombre_opcion'); ?>

Si la opción existe, se devuelve para mostrarla, o se almacena en una variable. Y si no existe se devuelve un resultado de FALSE.

Eliminar una opción

Eliminar una opción de un plugin es tan sencillo como usar la función delete_option(), que al igual que get_option(), recibe como único parámetro el nombre de la opción.

<?php delete_option('nombre_opcion'); ?>

Matrices de opciones

Como hemos comentado más arriba, cuando tenemos varias opciones para un plugin, lo interesante es crear un matriz de opciones, esto es debido a que cada vez que se crea un opción para un plugin, se crea una entrada nueva en la tabla wp_options de la base de datos, lo cual puede hacer que nuestra web se ralentice. Pero al almacenar una matriz se generan menos registros y menos llamadas a la BBDD.

Si observamos el siguiente ejemplo, vemos como introduciendo nuestro prefijo para el espacio de nombres, creamos un array que es introducido luego como las opciones del plugin, haciendo que solo haya una consulta en lugar de tres, que puede que no se note demasiado, pero imaginemos que tenemos un plugin con 50 opciones, esto podría hacer nuestra web más lenta, saturando además la BBDD.

$plwpej_array_opciones=array(
    'plwpej_display_mode' => 'Fright Night',
    'plwpej_default_browser' => 'Chrome',
    'plwpej_web' => 'mialtoweb.es',
    );

update_option ('plwpej_opciones', $plwpej_array_opciones);

Si queremos recoger luego nuestras opciones para utilizarlas en nuestro plugin es tan sencillo como hacer lo siguiente:

$plwpej_array_opciones = get_option('plwpej_opciones');

$plwpej_display_mode = $plwpej_array_opciones['plwpej_display_mode'];
$plwpej_default_browser = $plwpej_array_opciones['plwpej_default_browser'];
$plwpej_web = $plwpej_array_opciones['plwpej_web'];

Obtenemos nuestro array con get_option() y luego descargamos cada valor del array en una variable que podremos utilizar como necesitemos.

Todo esto esta muy bien, pero de momento solo hemos tocado el código, no permitimos que los administradores de WP puedan cambiar nada… en las siguientes entradas veremos como introducir nuestros plugins en los menús de WP y como hacer que las opciones sean configurables en el panel de control.