En esta entrada aprendemos a guardar datos personalizados y recuperarlos usando el sistema de ajustes de WordPress, no será necesario crear tabla alguna de la base de datos.
Sin embargo a diferencia de la parte 1 y 2, aquí usaremos Backend Frontend Template Pro: the WordPress Plugin Template, porque un desarrollador quiere poder crear su idea y no pelearse con WordPress cada momento que se pone a trabajar, y gracias a la versión profesional de Backend Frontend Template ahorraremos cientos de horas en el desarrollo de nuestro plugin, y el tiempo es dinero.
Contenido de la guía:
- Parte 1: preparar del plugin, crear páginas de administración y crear etiquetas/shortcodes.
- Parte 2: crear funciones personalizadas en una página de administración y como usar el registro de WordPress.
- Parte 3: guardar datos usando el sistema de ajustes de WordPress.
- Parte 4: crear y eliminar tablas de datos en la instalación y desinstalación del plugin.
Formulario de administración para los ajustes de WordPress
Para usar el sistema CRUD de ajustes de WordPress necesitaremos preparar una página de administración que llame al parcial: bft-admin-display-settings.php (los archivos que empiezan por “bft” se almacenan en otra ubicación diferente a tus parciales creados ex profeso) y el nombre de nuestro formulario de ajustes, que en este caso se llamará “our_settings”, por lo que el menú descrito en backend-frontend-template/admin/class-your-plugin-admin.php quedará así:
$this->admin_pages = [
"first_page" => [
"menu_title" => $this->__("First page"),
"page_title" => $this->__("This is my first admin page"),
"file" => "your-plugin-admin-display-first-page.php",
"function" => "my_first_custom_function",
],
"second_page" => [
"menu_title" => $this->__("Second page"),
"page_title" => $this->__("This is my second admin page"),
"file" => "your-plugin-admin-display-second-page.php",
"function" => "my_first_custom_function",
],
"settings_page" => [
"menu_title" => $this->__("Our settings"),
"page_title" => $this->__("Form with the settings stored by WordPress"),
"file" => "bft-admin-display-settings.php",
"admin_page_settings_id" => "our_settings",
],
];
En la misma página buscaremos la ubicación de $this->admin_settings y especificaremos los datos que queremos almacenar, para este ejemplo se ha usado un campo de text (campo por defecto), checkbox multiple y un select:
$this->admin_settings = [
"our_settings" => [
"title" => $this->__("Settings form"),
"fields" => [
"name" => [
"title" => $this->__("Your Name"),
],
"hobbies" => [
"title" => $this->__("What are your hobbies?"),
"args" => [
"type" => "checkbox",
"multiple" => true,
"options" => [
"film" => $this->__("Films"),
"serie" => $this->__("Series"),
"videogame" => $this->__("Videogames"),
"anime" => $this->__("Anime"),
"manga" => $this->__("Manga"),
],
],
],
"opinion_guide" => [
"title" => $this->__("Do you like this gide?"),
"args" => [
"type" => "select",
"options" => [
"yes" => $this->__("Yes"),
"no" => $this->__("No"),
],
],
],
],
],
];
Y ya tendremos listo el formulario automatizado:

Acceder a los datos guardados por WordPress
WordPress ofrece funciones para ello, pero no separa los datos por plugin, ocasionando graves problemas en los datos almacenados. Es por ello que Backend Frontend Template Pro siempre anota el ID del plugin en el nombre de las variables, evitando todo problema, y siempre de forma totalmente transparente para que no tengas que pensar en ello.
Para acceder a los datos guardados por WordPress a través de BFT usaremos:
$a_variable = $this->option_field_get("field_id");
$this->update_option_field("field_id", "new string value");
$this->delete_option_field("field_id");
Nota: usar ‘update’ para crear un nuevo dato.
Ejemplo: vamos a leer el nombre en la función my_first_custom_function() que creamos en la parte 2
public function my_first_custom_function($args = array()) {
$this->admin_permission_check();
//your own programming
$text_for_you_page = "Lorem Ipsum";
$args["text_for_page"] = $text_for_you_page;
$name = $this->option_field_get("name");
if(is_null($name)) {
$name = $this->__("Unspecified");
}
$args["name"] = $name;
$this->admin_menu_page_display($args);
}
Sigue en la parte 4
¡No esperes y descubre más tutoriales en la sección 4 de la guía!
0 comentarios