Escribiendo consultas personalizadas en WordPress

Con consultas personalizadas puede realizar cualquier lectura y / o manipulación de datos que desee. Al instante se abre un mundo de nuevas posibilidades..


Por qué usar consultas personalizadas?

Las funcionalidades básicas en WordPress están bien para las necesidades más simples, pero ¿qué haría si desea implementar algunas necesidades específicas? ¿Estás escribiendo un plugin tal vez? ¡Entonces debes aprender cómo puedes usar las consultas SQL en WordPress ahora mismo! Las referencias oficiales se pueden encontrar en el Códice de WordPress (Consultas personalizadas y la clase WPDB).


los wpdb Clase

Esta clase global de WordPress es clave para usar las consultas. De hecho, cada función utiliza esta clase..


Utilizando consulta

La función de consulta necesita una cadena que contenga la consulta personalizada. El valor de retorno es un número entero que corresponde al número de filas afectadas / seleccionadas, y falso cuando hay un error.

 $ query = "SELECT COUNT (apple) FROM fruits"; $ wpdb-> consulta ($ consulta);

tener resultados

Esta función obtiene varias filas al ejecutar una consulta. Por defecto el resultado de la función es una matriz..

 $ query = "SELECT * FROM wp_terms wt INNER JOIN wp_term_taxonomy wtt ON wt.term_id = wtt.term_id DONDE wtt.taxonomy = 'post_tag' AND wtt.count = 0"; $ wpdb-> get_results ($ consulta);

get_var

Esto devolverá una variable de la base de datos, pero el resultado completo de la consulta se almacena en caché para su uso posterior. Devuelve NULL si no se encuentra ningún resultado.

 $ query = "SELECT COUNT (*) FROM users"; $ wpdb-> get_var ($ consulta);

get_row

Se devolverá una fila completa como resultado de la función, que puede ser un objeto, una matriz asociativa o una matriz indexada numéricamente. NULL es el resultado cuando no se encuentran datos coincidentes. tipo de resultado puede ser OBJETO, ARRAY_A o ARRAY_N (objeto, matriz asociativa o matriz numerada). La compensación es un número entero con un valor predeterminado de 0.

 $ query = "SELECT * FROM wp_posts WHERE post_type = 'post'"; $ wpdb-> get_row ($ query, ARRAY_A, 3);

get_col

Para obtener una columna, usa esta función. La salida será una matriz dimensional. Se devolverá una matriz vacía si no se encuentra ningún resultado. El segundo parámetro es el desplazamiento de la columna..

 $ query = "SELECT * FROM wp_posts WHERE post_type = 'post'"; $ wpdb-> get_col ($ consulta, 3);

Consultas preparadas

Según el manual de php.net:

"Se puede considerar que las [consultas preparadas] son ​​un tipo de plantilla compilada para el SQL que una aplicación quiere ejecutar, que se puede personalizar utilizando parámetros variables".

Puede proteger consultas SQL contra ataques de inyección SQL. En resumen, los datos en las consultas deben tener un escape de SQL antes de que se ejecute la consulta para evitar ataques de inyección. Esto se puede hacer fácilmente con el método de preparación. En el siguiente ejemplo, los valores '10', 'mono' y 'manzana' se escaparán cuando se utilicen en este método.

 // Uso: $ wpdb-> prepare ('query' [, value_parameter, value_parameter…]); $ wpdb-> query ($ wpdb-> prepare ("INSERT INTO test_table (post_id, animal, food) VALORES (% d,% s,% s)", array (10, 'monkey', 'apple')))) ;

Configuración de mensajes de error

Puede activar y desactivar los mensajes de error con la show_errors y hide_errors funciones, pero también puede imprimir:

 $ wpdb-> show_errors (); $ wpdb-> hide_errors ();

Control de caché

La eliminación de la memoria caché se puede hacer con el rubor función.

 $ wpdb-> flush ();

Insertando Datos

 $ wpdb-> insert ($ table, $ data, $ format); $ wpdb-> insert ('foods', array ('fruit' => 'apple', 'year' => 2012), array ('% s', '% d'));

Los parámetros utilizados en orden son:

  • el nombre de la tabla para insertar datos en
  • los datos para insertar (columna => pares de valores) sin escapar
  • una matriz de formatos para ser asignados a cada uno de los valores en $ datos. Si no está presente, todos los valores serán tratados como cadenas

Actualización de datos

 $ wpdb-> update ('foods', array ('fruit' => 'apple', // string 'year' => 'value2' // integer (number)), array ('ID' => 1), array ('% s', // value1 '% d' // value2), array ('% d'));

Los parámetros utilizados en orden son:

  • nombre de la tabla
  • datos
  • donde las condiciones
  • formato
  • donde_formato

Información de la columna

Puede obtener información sobre las columnas del resultado más reciente con esta función. Cuando una función ha devuelto un OBJETO y hay propiedades de las que no sabes mucho, esto puede ser útil.

 $ wpdb-> get_col_info ('tipo', desplazamiento);
  • Escriba: la información que desea recuperar, algunos ejemplos están aquí
    • nombre - Nombre de columna (este es el valor predeterminado)
    • mesa - nombre de la tabla a la que pertenece la columna
    • longitud máxima - longitud máxima de la columna
    • no nulo - 1 si la columna no puede ser NULA
    • Más se puede encontrar en la referencia de WordPress Codex WPDB
  • Desplazamiento: especifique la columna desde la que se recuperará la información (0 es la primera columna)

Hacer referencia a las tablas de WordPress

Las tablas de la base de datos de WordPress se pueden consultar en el wpdb clase. Esto es muy conveniente ya que los nombres de las tablas pueden ser diferentes a los predeterminados. Aquí hay una lista de referencias de la tabla de base de datos de WordPress:

  • $ wpdb-> mensajes;
  • $ wpdb-> postmeta;
  • $ wpdb-> comentarios;
  • $ wpdb-> commentmeta;
  • $ wpdb-> términos;
  • $ wpdb-> term_taxonomy;
  • $ wpdb-> term_relationships;
  • $ wpdb-> usuarios;
  • $ wpdb-> usermeta;
  • $ wpdb-> enlaces;
  • $ wpdb-> opciones;

Tenga en cuenta que no necesitamos incluir el prefijo, ese es el beneficio aquí donde wpdb La clase se encarga de eso por nosotros..

¡Ahí lo tenemos! Una referencia para consultas personalizadas en WordPress, todo en un solo lugar para usted.