WordPress para el desarrollo de aplicaciones web Guardar datos

Cuando se trata de la web, casi todas las aplicaciones que se ejecutan dentro de su navegador están respaldadas por un almacén de datos de algunos tipo. Por lo general, estos almacenes de datos tienen la forma de un tipo de base de datos..

Hasta hace poco, la mayoría de las aplicaciones se creaban sobre algún tipo de base de datos SQL, pero con el aumento de las bases de datos basadas en documentos como CouchDB, otras aplicaciones también comenzaron a usar otros backends..

No solo eso, con HTML5 y los navegadores implementando servicios para almacenamiento local, En realidad somos capaces de comenzar a almacenar algunos Datos del lado del cliente. Obviamente, esto no es algo que querrías hacer permanentemente, pero otorga un nivel de flexibilidad y poder que no hemos tenido recientemente.

De todos modos, en la vena clásica de las aplicaciones web, WordPress es una aplicación respaldada por bases de datos que utiliza una base de datos MySQL para almacenar su información..

Pero esta serie trata sobre la creación de aplicaciones sobre WordPress. Para ese fin, es importante entender no solo cómo guardar la información, sino también cómo recuperarla..

Por supuesto, cuando se trabaja con la serialización de datos, también es importante tener en cuenta que los usuarios pueden intentar insertar datos maliciosos en la base de datos. Como tal, es nuestra responsabilidad limpiar correctamente los datos al insertar los datos en la base de datos, así como asegurarnos de que estamos escapando de los datos a medida que los recuperamos de la base de datos..

En este artículo, vamos a echar un vistazo a las API que WordPress ofrece para la información de serialización y las instalaciones disponibles para la limpieza de datos. Luego, completaremos el artículo analizando cómo recuperar la información de la base de datos de forma segura..


Almacenamiento de datos

Obviamente, uno de los principales diferenciadores entre los sitios web normales y las aplicaciones web es su capacidad para administrar los datos almacenados en algunos Tipo de base de datos. Por lo general, esto también significa que la información se almacena por usuario (pero no siempre).

De todos modos, fuera de la caja, WordPress ofrece una variedad de API que facilitan el almacenamiento y la recuperación de datos. Y quizás lo mejor de guardar datos en la base de datos de WordPress es que una vez que comprenda cómo funciona una API, por lo general tendrá una intuición de cómo funcionan los demás..

Entonces, dicho esto, comencemos a observar cómo guardamos la información en la base de datos de WordPress..

Entendiendo la base de datos

Para aquellos de ustedes que no están familiarizados, WordPress solo consiste en un puñado de tablas. Para los fines de esta discusión, nos preocupa principalmente conocer las siguientes tablas:

  • wp_options. La tabla de opciones es responsable de almacenar piezas de información relacionadas con las preferencias, la configuración, todo lo relacionado con la configuración que se aplique en todo el sitio..
  • wp_posts. Esta tabla almacena datos relacionados con las publicaciones. Aunque no trabajaremos directamente con esta tabla, es importante entender que existe para que podamos trabajar con información meta.
  • wp_postmeta. Como se mencionó anteriormente, esta tabla es responsable de mantener la metainformación relacionada con las publicaciones individuales. Y dado que las publicaciones pueden representar páginas, publicaciones y tipos de publicaciones personalizados, aquí es donde almacena información relacionada con cada uno de sus tipos de publicaciones. Es extremadamente flexible en el tipo de datos almacenados, por lo que realmente puede tener mucho poder en términos de cómo relaciona la información con las publicaciones (independientemente del tipo al que se definan).
  • wp_comments. Esta tabla debería ser evidente, pero aquí es donde se almacenan todos los comentarios para publicaciones, páginas y tipos de publicaciones personalizadas. Me gusta wp_posts, aquí no es donde escribiremos los datos directamente, pero es importante entender que esta tabla existe y que hay una tabla de metadatos de comentarios a la que podemos acceder al escribir información en la tabla..
  • wp_commentmeta. Como se mencionó, como wp_postmeta, aquí es donde se guardan los metadatos sobre los comentarios. Y concedido, aunque no necesariamente está trabajando con comentarios en aplicaciones web en general, puede terminar teniendo un componente de blog en su aplicación. Y en ese caso, es útil saber cómo leer y escribir datos en la tabla..

Obviamente, esto es solo un estudio de alto nivel de algunas de las tablas de bases de datos que impulsan a WordPress. Si desea familiarizarse con el resto de la información solo para su propia edificación, asegúrese de revisar la descripción de la base de datos..

No obstante, esto debería ser lo suficientemente bueno como para que podamos leer de manera estándar la información en la base de datos..

Escribir datos en la base de datos

En este punto, tenemos suficiente información sobre la capa de base de datos para comenzar a realizar un estudio de las API que están disponibles en la capa de aplicación de WordPress que nos permiten obtener información proporcionada por nosotros mismos y / o por la información del usuario..

La tabla de opciones

Ahora, escribir información en cada una de las tablas anteriores es realmente fácil.

  1. Es una cuestión de entender las API disponibles.
  2. Es importante saber sanear los datos.

Primero, vamos a echar un vistazo a las funciones que están disponibles para leer, escribir y actualizar información en las tablas de opciones de WordPress..

Añadir y actualizar opciones

WordPress proporciona dos funciones de API de especificación para escribir datos en la base de datos. Uno viene en forma de agregar información, uno viene en forma de actualizar información.

Para agregar información a la tabla de opciones de WordPress, usaría la siguiente función API.

add_option acepta tres parámetros:

  1. Una clave - o un identificador único para la información
  2. El valor de los datos a almacenar.

Por ejemplo, si quisiéramos almacenar información, como mi nombre, entonces haríamos algo como esto:

add_option ('mi-nombre', 'tom mcfarlin');

Si, por otro lado, quisiéramos tomar algo proveniente de la $ _POST colección, entonces podemos hacer algo como esto:

if (isset ($ _POST ['value']) &&! empty ($ _POST ['value']) add_option ('my-value', $ _POST ['value']);

Actualizar las opciones es muy diferente. Sigue el mismo esquema y puede ser utilizado en su lugar de add_option Porque si la opción no existe, la creará..

Por el bien de explicar el tema, no voy a entrar en mucha más información sobre esta función en particular. Esencialmente, update_option será:

  • Añade la opción si no existe ya.
  • Sobrescriba el valor existente si hace existe

No esta mal cierto?

Una palabra sobre tema Mod

Para aquellos de ustedes que han trabajado con temas de WordPress, especialmente cuando usan el Personalizador de Temas, entonces probablemente estén familiarizados con el set_theme_mod función.

Esta función API particular no es exactamente relevante para crear aplicaciones web con WordPress; sin embargo, para estar completo, quería poder mostrar todas las API que son Responsable de escribir los datos en la base de datos..

Nota específicamente del Codex:

Crea o actualiza una configuración de modificación para el tema actual. Junto con get_theme_mod (), esta función a veces ofrece a los desarrolladores de temas una alternativa más simple a la API de configuración cuando existe la necesidad de manejar configuraciones básicas específicas del tema.

Esto queda claramente relegado a trabajar con temas..

Las Tablas Meta y Comentario de Meta

Honestamente, trabajar con post meta no es muy diferente a trabajar con opciones. De hecho, incluso puede considerar las funciones de API para serializar metadatos post y los metadatos de comentarios casi idénticos a cómo se almacenan las opciones en el wp_options base de datos.

En resumen, las funciones de la API incluyen tres datos:

  1. La identificación del elemento
  2. La clave de datos
  3. El valor de los datos

Entonces, en el caso de guardar la información de la publicación, la ID del elemento correspondería a la ID de la publicación; en el caso de los comentarios, la ID del elemento correspondería a la ID del comentario.

Y al igual que ocurre con el almacenamiento de datos en la tabla de opciones, es importante tener en cuenta que agregar una opción introducirá la opción en la base de datos, y la actualización de la opción creará la opción si aún no existe, y luego sobrescribirá valor existente en la base de datos.

Caso en cuestión, guardar información en la tabla meta de la publicación:

add_post_meta (get_the_ID (), 'my-post-information', 'Esta es mi publicación favorita.');

Y, digamos, la actualización de la información en la tabla meta de comentarios se vería así:

update_post_meta (get_the_ID (), 'my-post-information', 'Esta es mi publicación favorita.');

Alternativamente, puede que necesite usar el $ post variable si el método no está siendo llamado dentro de The Loop. Por ejemplo:

global $ post; add_post_meta ($ post-> ID, 'my-post-information', 'Esta es mi publicación favorita.');

Y para escribir datos en las meta tablas de comentarios, siga las exacto mismo formato, excepto que usas add_comment_meta y update_comment_meta.

Pero ahora que hemos cubierto cómo guardar la información en la tabla de opciones, la tabla de metadatos posterior y la tabla de metadatos de comentarios, ¿cómo podemos asegurarnos de que no se guarda información peligrosa en la base de datos??

Fácil: desinfección de datos.


Datos de desinfección

Cuando se trata de ahorro Datos a la base de datos, una de las cosas más importantes que los desarrolladores debe desinfectar toda la información que proviene del usuario e ingresar a la base de datos.

Ahora, lo que tiene que ver con la limpieza de datos es que depende de los datos que tenga que guardar. Por ejemplo, hay muy pocas veces en las que realmente querrá guardar el marcado, SQL u otros tipos de código fuente en la base de datos.

Para evitar esto, es probable que desee utilizar las funciones de PHP como strip_tags y tiras con el fin de limpiar la información.

Por ejemplo:

if (isset ($ _POST ['value']) &&! empty ($ _POST ['value']) $ clean_value = strip_tags (stripslashes ($ _POST ['value'])); add_option ('my-value', $ clean_value);

Claro que estar absolutamente claro, esto no es más que un ejemplo de cómo sanear la información. Su implementación puede variar según el tipo de aplicación que esté creando. El punto de compartir esta información es mostrar uno de muchos ideas sobre cómo limpiar la información para guardarla en la base de datos de WordPress.

Por otra parte, estas no son las únicas formas en que podemos sanear los valores. Recuerde hacer un seguimiento de las instalaciones que WordPress proporciona de forma inmediata:

  1. desinfectar
  2. sanitize_file_name
  3. sanitize_html_class
  4. sanitize_key
  5. sanitize_meta
  6. sanitize_mime_type
  7. sanitize_option
  8. sanitize_sql_orderby
  9. sanitize_text_field
  10. sanitize_title
  11. sanitize_title_for_query
  12. sanitize_title_with_dashes
  13. sanitize_user

En este punto, no olvide utilidades como expresiones regulares. Son increíblemente poderosos al hacer coincidir solo ciertas cadenas y ciertos patrones de una colección de datos que se pueden extraer para guardar los datos.


Esto es solo la mitad

Por supuesto, solo hemos hablado sobre cómo guardar información en la base de datos de WordPress.

Aún no hemos llegado a conocer cómo recuperar información, y mucho menos cómo validar realmente la información que sale de la base de datos..

Entonces, en el próximo artículo, veremos cómo es la otra cara de este artículo, específicamente, veremos cómo obtener información. desde la base de datos, evite los posibles caracteres que puedan ser problemáticos al renderizarlos en el navegador y cómo manejarlos.