En un artículo anterior habíamos visto como mostrar datos desde una tabla personalizada en WordPress, sin embargo en este artículo vamos a incluir funcionalidad adicional de búsqueda y además paginación.
Resultado Final
Al final lo que queremos obtener será algo similar a la siguiente imagen, en donde se listan datos de una tabla personalizada, además se muestran los registros paginados y con la funcionalidad de búsqueda.

Código para mostrar tabla personalizada
El siguiente código muestra en una página llamada “empleados” los registros de una tabla llamada “employee”, la tabla se asume que esta en la misma BD de WordPress.
En el código anterior:
- Utilizamos el Hook the_content que hace referencia a la función dcms_list_data() para mostrar los datos en una página específica de WordPress
- Puedes cambiar las variables $slug_page, $table_name e $items_per_page
- Para cambiar el campo de búsqueda debes hacerlo en la variable $search_condition
- Dentro de esta función se llaman a otras tres funciones para mostrar la búsqueda, el contenido y la paginación
- Para cambiar la estructura de los campos a mostrar debes hacerlo en la función dcms_print_table() y adaptarlo de acuerdo a la estructura de tu tabla
Conclusión
Como has podido comprobar, puedes mostrar datos de una tabla personalizada directamente a través de código en WordPress, además tener la funcionalidad de búsqueda y paginación es especialmente útil si vas a mostrar una gran cantidad de registros y es más accesible para el usuario.
Muy buen post !!! Disculpa de casualidad no sabrás de alguna documentación en español para usar este plugin boilerplate ? https://wppb.me/ se me ha difícultafo mucho encontrar documentación en español para usarlo en mis plugins.
Hola Manuel, si, tengo un artículo al respecto, revisa: https://decodecms.com/generador-de-plugins-base-para-wordpress/ , sin embargo espero hacer un artículo relacionado con una estructura de archivos diferente que es la que últimamente estoy usando.
Gracias por tu post. Como se podria agregar un boton para descargar la tabla filtrada?
Hola, es una buena funcionalidad que podrías servir, evaluaré hacer un artículo sobre esto. Saludos.
HOla Jhon, me encanta tu estilo de publicar, he encontrado varias soluciones con tus publicaciones.
En el artículo “Mostrar Tabla Personalizada con Búsqueda y Paginación en WordPress”,
El search se podria cambiar por un select option para no tener que escribir y solo buscar en p.ejemplo los
empleados previamente dados de alta
Hola Rafael, podrías quitar el input de búsqueda y reemplazarlo por un Select HTML, revisa: https://www.w3schools.com/tags/tag_select.asp , posiblemente también tengas que afinar la consulta SQL, aunque si los valores del Select coinciden con el like podrías dejarlo igual.
Muy buen tutorial jhon! me pregunto si quisiera que solo aparezcan los datos solo cuando realizo las busquedas y no cuando ingreso a la pagina que deberia editar. Saludos!
Hola, tendrías que envolver dentro de una condicional los dos últimas concatenaciones para $content, comprobando cuando hay un valor en $search
Buenos días,
Muy interesantes y muy práctico.
¿Hay forma de definir donde se muestra dentro de una página de wordpress que tenga más contenido?
Es decir, ¿se puede crear un contenedor en la página de wordpress, y que luego se incluya ahí la búsqueda y resultado de la misma?
Pudiera hacerse que en lugar de por el slug_page, se incluyera por una llamada shortocode donde lo necesitáramos.
Muchas gracias
Hola, si, efectivamente, si quieres más flexibilidad en donde se muestra la búsqueda puedes crear un shortcode, revisa el siguiente enlace de referencia: https://decodecms.com/shortcode-para-busqueda-en-tabla-personalizada-en-wordpress/
Hola Jhon, gracias por tus tutoriales.
Una consulta, tengo un error, me dice:
Fallo al actualizar. Las respuesta no es una respuesta JSON válida.
Esto es cuando pongo el shortcode en la pagina. Alguna idea?
Gracias de antemano
Hola, ese mensaje no creo que tenga que ver con el código de este artículo, es más bien algo relacionado con el propio WordPress o con el editor, revisa esta discusión: https://es.wordpress.org/support/topic/mensaje-de-error-las-respuesta-no-es-una-respuesta-json-valida/
Hola Jhon, gracias por tus tutoriales, me gustaría que nos mostrara algún ejemplo con el trabajo con los registros dentro de la tabla que muestras un update utilizando ajax con checkbox y este tipo de cosas, creo que sería de mucha ayuda para todos.
Gracias de Antemano
Hola Alberto, si, es una buena idea, lo evaluaré, aunque incluye mucho más código, posiblemente incluso daría para un curso. Saludos.
Muy buenos tutoriales Jhon! Me sirven de muchísimo.
Estoy intentando hacer lo mismo mostrando 1 único resultado usando un filtrado mediante 2 botones.
Ej.:
Botones1=Audi, VW, Mercedes
Botones2=Rojo, Verde, Azul
Automáticamente mostrar un resultado habiendo seleccionado cualquiera de los botones mostrados anteriormente.
¿Tienes algún tutorial así? ¿o me podrías ayudar porfavor?
Muchas gracias de antemano.
Hola, puedes capturar los valores de tu selección de manera similar a como se hace con el input de búsqueda, lo capturas con $_REQUEST y luego tendrías que modificar la consulta SQL para que devuelva los valores filtrados.
Hola Jhon, muchas gracias por tus tutoriales, me ayudaron a animarme a probar otras cosas.
Te hago una consulta, como debo hacer para que el resultado de la busqueda se imprima en un formulario?
Por ejemplo, tengo un listado muy grande de pacientes y necesito traer 1 al formulario para seguir con la carga de datos y que despues se envíen por email.
Hola, te sugiero revisar este artículo en donde se recupera la información desde un listado para editar: https://decodecms.com/crud-en-wordpress-sin-plugins/