Skip to main content

Mostrar consultas realizadas por mi WordPress

Si lo que estamos buscando es optimizar nuestro wordpress, esta función te puede venir bien para saber cuantas consultas realiza a la base de datos.

Lo primero que tenemos que hacer es habilitar SAVEQUERIES en nuestro fichero «wp-config.php«

define('SAVEQUERIES', true);

Esto le dice a WordPress que guarde todas las consultas.

Para obtener la consultas realizadas hay que utilizar $wpdb->query, añadimos este código a nuestra página (por ejemplo en el footer)

global $wpdb;
echo '<pre>';
print_r($wpdb->queries);
echo '</pre>';

Obtendremos:

[0] => Array
        (
            [0] => SELECT option_name, option_value FROM dg_options WHERE autoload = 'yes'
            [1] => 0.00107002258301
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), wp_not_installed, is_blog_installed, wp_load_alloptions
            [3] => 1588409077.08
            [4] => Array
                (
                )

        )

Pruebas realizadas en la versión de WordPress 5.4.1

Cuantas consulta a la base de datos realiza mi WordPress

WordPress nos facilita una función (get_num_queries()) para obtener el número de consultas a la base de datos:

get_num_queries()

Ejemplo:

Añado este código al fichero footer.php justo antes de cerrar el body (</body).

<?php echo '<!-- ' . get_num_queries() . ' consultas a la base de datos -->'; ?>

Para ver la cantidad tienes que ver el código fuente puesto que esta comentado en el html.

Resetear key de un array en PHP

En el siguiente ejemplo vamos a resetear las keys de un array en php.

$array[4] = 'PHP';
$array[6] = 'CSS';
$array[10] = 'Javascript';
$array[10] = 'Angular';

$arrayK = array_values($array);

$arrayK[0] = 'Apple';
$arrayK[1] = 'Orange';
$arrayK[2] = 'Peach';

Para resetear las key de un array vamos a utilizar la función array_values() de php, dicha función recibe por parámetro un array, retorna el array con las key reseteadas.

array_values ( array $array ) : array

Consultar los posts de wordpress desde un fichero externo

En este ejemplo vamos a realizar una consulta a la base de datos de wordpress utilizando $wpdb desde un fichero externo php (fuera de la estructura de wordpress)

WordPress $wpdb nos proporciona un objeto global para realizar las consultas a la base de datos, dicho objeto es una instancia de /wp-includes/wp-db.php.

Empécemos con el ejemplo:

Creamos un fichero php, yo le llamare exportacion.php y pegamos el siguiente código:

<?php
require './wp-load.php';
global $wpdb;

$prefix = $wpdb->prefix;
$table = $prefix . "posts";

$posts = $wpdb->get_results("SELECT * FROM $table");

print_r($posts);

Detallo, mi ejemplo esta creado en la raiz de ficheros:

require './wp-load.php';

Con este require añadimos toda la infraestructura de wordpress.

global $wpdb;

Invocamos a la variable global $wpdb (es el objeto que se va a encargar de realizar la consulta)

$prefix = $wpdb->prefix;

El atributo prefix nos devuelve el prefijo de las tablas (wp_), esto es necesario si has cambiado el prefijo de las tablas (yo lo suelo hacer).

$table = $prefix . "posts";

Prepara una variable con el nombre de la tabla que voy a realizar la consulta.

$posts = $wpdb->get_results("SELECT * FROM $table");

$wpdb->get_results realiza la consulta a la base de datos y me añade los registro a la variable $posts.

Ya podríamos recorrer la variable $posts y obtener los post.

¡Hola, mundo!

Bienvenido al portal tecnicoweb.es, en este portal encontraras todas las inquietudes de un programador web, soluciones a problemas en la programación web, también sera un directorio de trozos de código que se utilizan a diario.

Los principales lenguajes que encontraras serán, Php, Html, Css, Javascript, Jquery, Angular, IONIC, Zend Framework, Laminas, …