Ticker

6/recent/ticker-posts

Ad Code

Responsive Advertisement

Guardar las búsquedas internas en WordPress

En este artículo veremos cómo guardar los textos de búsqueda que se realizan en el mismo sitio, lo haremos directamente creando una tabla en la Base de Datos y a través de código.

 

Resultado Final

Al final lo que queremos obtener son datos de la cantidad de veces por cada texto que se ha buscado, algo similar a la siguiente imagen:

Datos de ejemplo resultado búsqueda

 

Estructura de la tabla

Guardaremos los datos en una tabla personalizada en la base de datos de tu propio WordPress, el siguiente código crea la tabla.

CREATE TABLE wp_text_search (
        search VARCHAR(200) NOT NULL UNIQUE,
        count INT DEFAULT 0
);

 
En el código anterior

  • Cambia el prefijo “wp_”, en caso uses alguno diferente
  • El campo de texto “search” es UNIQUE, ya que no debería haber dos filas con el mismo texto

 

Puedes usar este código desde la aplicación PHPMyAdmin o similar, ejecutando una consulta SQL.

 

Código para guardar las búsquedas internas en la tabla

El siguiente código guardará las búsquedas que se realicen en tu sitio en la tabla que hemos creado anteriormente.

function dcms_count_text_search( $query_object ) {
    if( $query_object->is_search() ) {
        global $wpdb;

        $table = $wpdb->prefix . 'text_search'; //Nombre de la tabla
        $col_search = 'search'; //unique
        $col_count = 'count';

        $search_text = $query_object->query['s'];

        // Buscamos la cantidad de repeticiones si el texto existe
        $sql = $wpdb->prepare("SELECT `$col_count` FROM `$table` WHERE `$col_search` = '%s'", $search_text);
        $count = $wpdb->get_var($sql) ?? 0;

        // Insertamos o actualizamos
        $wpdb->replace( $table, [$col_search => $search_text, $col_count => $count + 1], ['%s', '%d'] );
    }
}

add_action( 'parse_query', 'dcms_count_text_search' );

 
En el código anterior:

  • Usamos el hook parse_query que hace referencia a la función dcms_count_text_search()
  • Dentro de la función comprobamos el método del objeto $query_object para saber si la consulta es de una búsqueda
  • Usamos la variable global $wpdb para consultar a la BD, buscamos primero la cantidad de repeticiones para el texto buscado
  • Luego usamos el método replace() para insertar o actualizar el valor encontrado anteriormente sumándole 1

 

Conclusión

Como has podido comprobar, puedes guardar las búsquedas que tus usuarios realizan en tu sitio directamente creando una tabla y a través de código. Los datos guardados pueden ser usados como base para tomar desiciones de mejora respecto al contenido que más se busca en tu sitio.

 

Suscríbete a DecodeCMS:  

 

La entrada Guardar las búsquedas internas en WordPress es un artículo reciente del sitio DecodeCMS.

Enregistrer un commentaire

0 Commentaires