En artículos anteriores ya habíamos visto cómo buscar en una tabla personalizada, sin embargo ahora veremos cómo hacerlo usando un Shortcode y además sólo mostrar los datos que se buscan sin mostrar toda la información desde el inicio.
Resultado Final
Búsqueda por nombre, con múltiples resultados
Búsqueda por código con resultado único
Código para la búsqueda en tabla personalizada
En el siguiente código asumo que tienes una tabla personalizada en la base de datos de tu sitio web WordPress, puedes cambiar las variables para reflejar el nombre de tu tabla y los campos de búsqueda.
También puedes cambiar el HTML que se genera para que refleje los campos que quieres mostrar.
En el código anterior:
- Utilizamos el hook init para crear un shortcode con la función add_shortcode()
- El shortcode tendrá el nombre: search-form y hace referencia a la función dcms_search_form()
- Dentro de la función dcms_search_form() configuramos los valores de las variables: $table_name, $field_search1, $field_search2
- También se captura la variable $search del formulario
- Con estas variables formamos la consulta SQL que nos devolverá los valores encontrados
- Se crea el formulario con HTML
- Si hay resultados, entonces también se crea la tabla HTML
Conclusión
Como has podido ver puedes integrar fácilmente la funcionalidad de búsqueda en una tabla personalizada en tu sitio web directamente a través de código.


Hola, Estimado amigo.
Buenas tardes, eh visto su códigos y explicaciones y usted es un master, vera quería ver si m podría ayudar es un tema de universidad, eh creado una pagina para mi proyecto, donde los estudiantes puedan ver sus nota con solo poner las notas, pero ahora no se como hacer para ingresar los datos de los estudiantes como cedula, nombres apellidos y las calificaciones a una tabla de base de datos, será que me podría ayudar.
Como hago para ingresar desde una pagina los datos de manera individual o de manera masiva mediante un .csv a la tabla que eh creado de la base de datos wordpress.
De ante mano agradezco su ayuda
Hola, los plugins de importación usualmente trabajan con Custom Post Type, si has creado una tabla personalizada no podrás usar plugins y tendrás que hacerlo de la manera clásica con PHP, lo que si podrías usar es un hook de «admin_post_XXXXX», revisa este artículo de guía: https://decodecms.com/formulario-de-contacto-sin-plugins-en-wordpress/ , con respecto a llenar datos, lo mismo si es una tabla personalizada tendrás que usar código PHP directamente. Evaluaré hacer un artículo sobre esto.
Hola, Amigo.
Genial, muchas gracias por su aporte, lo probare, en realizar lo que me comentas, y si ves estaría genial, un articulo sobre ese tema
Hola amigo, muchas gracias por tus aportes me ayudan mucho, quiero comentarte que estoy haciendo exactamente lo que me dices en el video, cambio los parametros, nombre de la tabla, los campos que quiero que busque, y me muestra el campo para inserta el texto y el boton de busqueda pero no me muestra ningun dato de la BD a la que me estoy conectadno no se si es problema de conexion con la base de datos o porque pasa esto, gracias quedo atento.
Hola, lo primero sería revisar el valor de la variable $sql, y pegar esa consulta en PHPMyAdmin y ver si te devuelve resultados.
Este es basicamente mi error, pero no entiendo tu solución. 🙁
Hola, disculpa envié este mensaje en otro post no relacionado con mi inquietud.
Ahora sí, estoy en «Shortcode para búsqueda en tabla personalizada en WordPress»
Implementé este código varias veces en entornos de pruebas locales limpios en WordPress 6.0.1 y al insertar el shortcode en la página muestra el siguiente error al publicar/actualizar la página:
«Ha fallado la actualización. Las respuesta no es una respuesta JSON válida.»
Aún así el código funciona pero no respeta el diseño de la página, es decir, se posiciona por encima de todos los bloques
¿Me puedes orientar en una solución?
Hola, el error que comentas no creo que tenga que ver con el código, más bien parece ser algo relacionado con las urls permanentes, tal como se comenta en esta artículo: https://www.igestweb.es/paginas-web/resolviendo-el-fallo-en-wordpress-de-respuesta-json-valida/
Hola, gracias
Intenté lo de los enlaces pero seguía igual, el problema eran son los bloques, no entiendo por qué.
Instalé el Editor clásico, TinyMCE Advanced ya no aparece el mensaje “Ha fallado la actualización. Las respuesta no es una respuesta JSON válida.”
Jhon muy buenas tardes, muchas por compartir tus conocimientos en esta pagina, han sido de gran ayuda.
Tengo problemas para cargar el shorcode, al momento de abrir la pagina solo me esta visualizando o imprimiendo en pantalla el msj : search-form
Gracias de antemano por tu colaboración
Hola, por lo que comentas no se esta interpretando el shortcode, te sugiero revisar el video cuidadosamente, es posible que en algún lugar haya algún paso que esta pendiente de realizarse.
Hola Jhon. Muy interesante tu aporte.
Quisiera saber si esa bisqueda (el resultado de la busqueda) se puede editar
Hola, tal como esta el código no, necesitarías código adicional. Espero hacer un artículo próximamente sobre cómo realizar esto.
Saludos estimado..!! Agradecer por compartir tus conocimientos. Comentarte que copie el código en code snippet y genera error en la linea 25 donde se crea la tabla, no esta reconociendo las etiquetas html. debo instalar algún plugin para solucionar el error?. Agradezco la atención.
Hola, en el functions.php asegúrate de no tener ninguna etiqueta de cierre de PHP ya que es posible que al tener una etiqueta de cierre «?>», el código que agregues después no será interpretado correctamente.
Help..!! elimine la Etiqueta «?>» y agregue comillas simples desde hasta el final <?php endif '; y me indica que no es JSON..!!.
Alguien que pueda enviarme el código ya compilado y funcionando..?? Agradezco la ayuda..!! mi e-mail jcgarecaruiz@gmail.com
Hola, mejor sube algunas imágenes a algún repositorio público y envía la url para revisar cómo agregaste el código.
cordial saludo Jhon Marremos,
Estoy realizando el proceso; inicialmente aplico el codigo en la plantilla utilizada (functions.php) asi adjunto imagen
https://photos.app.goo.gl/NfPUA1FuYhSnAvGQ8
dicho codigo esta relacionado con los campos de la tabla cliente adjunto imagen
https://photos.app.goo.gl/RVGJutv9TxJKSMHw8
por segundo genero la pagina llamada cliente donde pego el shortcode adjunto imagen
https://photos.app.goo.gl/bCMMe2LarNEuBync7
una vez guardado los cambios y actualizo mi sitio web genera la caida completa del sitio web adjunto imagen
https://photos.app.goo.gl/okxjipsa6BVgi1rr5
bajo lo anterior no se que podria estarhaciendo mal ? agradesco su colaboracion
Hola, revisa el log de errores, o habilita la depuración de tu sitio, te genera un archivo debug.log dentro de la carpeta wp-content, con eso se puede ver en qué línea tienes problemas. Revisa: https://decodecms.com/habilitar-el-modo-debug-en-wordpress/
PD. Siempre usa un editor de código que te facilite ver los errores y te resalte el código, usa por ejemplo Visual Studio Code que es gratuito.
Excelente aporte!
El unico problema que tengo es que por celda no se muestran mas de 10 caracteres, independientemente si son numeros o texto, si tengo 2 o 20 columnas.
Hola, lo que comentas es posiblemente algo relacionado con el código CSS de tu tema (o de algún plugin), prueba cambiando temporalmente de tema, usando alguno de los que vienen por defecto y verifica. Saludos.
Hola, llevo algún tiempo intentando conectar mi base de datos para búsqueda con tu shortcode y hoy finalmente logré que apareciera el buscador, pero no me conecta a ningún dato.
¿Podrías ayudarme, por favor? No entiendo cuál puede llegar a ser el error.
Hola María, revisa tu consulta SQL, si habilitas la depuración de WordPress debería darte más información de los errores. https://decodecms.com/habilitar-el-modo-debug-en-wordpress/
Warning: Undefined variable $items in /home4/bodegaje/public_html/wp-content/themes/astra-child/functions.php on line 53
Éste es el error, revisé pero la linea está tal cual indicas aquí.
Jhon, aprecio mucho tus tutoriales, son de inmensa utilidad. Siguiendo con la idea de este tutorial cómo debería hacer para agregar un botón que me lleve a una página dentro del mismo blog, para que el usuario pueda ver más detalles?
Gracias de antemano por su repuesta
Hola Omar, entiendo que quieres tener una columna adicional en los registros de búsqueda con un enlace a alguna otra página, en ese caso simplemente agrégalo como parte de los datos, es decir, crearías una columna de cabecera adicional con la etiequeta HTML th y los datos con td, luego el enlace lo construirías con HTML.
Muchas gracias
Hola muchas gracias por tus aportes, implemente tu código para el shortcode en mi web en local y me pasaron muchas cosas, se rompió la web, me sale que no está definida la variable items y así… Logre hacer que funcione el código pero ahora cuando realiza la búsqueda genera una redirección a la entrada predeterminada de WordPress con el mensaje «¡Hola mundo!» ya no sé qué hacer, espero me puedas ayudar. EStoy utilizando el tema Astra, o no sé si deba al formato de las URL de la página.
Es raro que te redireccione, entiendo que tienes las urls amigables habilitadas y no tienes ningún plugin de redirecciones o similar. Revisa en la url que tengas un parámetro llamado: «search» en la url de búsqueda.
Buenas, el año pasado segui tu tutorial paso a paso y me funciono perfectamente, pero ahora de buenas a primeras ya no me funciona, siempre utilizo el tema ASTRA, que podria ser?
Hola, debe haber algo que hiciste diferente, revisa cuidadosamente el código, vuelve a revisar el video, habilita la depuración para tener una idea de que errores se generan.
Hola, alguien le funciona tengo los mismos errores de JSON
Saldos estimado, hace poco estoy siguiendo tu contenido y te agradezco de corazon por compartir tanto conocimineto, me gustaria tu ayuda, ya que que copio el codigo igual a como lo publicas hasta mantengo la misma BD para evitar errores pero al usar el shortcode me sale un error «Ha fallado la actualización. Las respuesta no es una respuesta JSON válida»
Hola, tienes que habilitar la depuración y luego consultar el archivo debug.log a ver que mas información hay.
Revisa: https://decodecms.com/habilitar-el-modo-debug-en-wordpress/
Hola Jonh me gustaría tu ayuda, al implementar el Shortcode el buscar queda al inicio del content y no donde lo inserte en el sitio web, que podrá ser?
Hola
Revisa la estructura HTML que se genera, a veces falta abrir o cerrar alguna etiqueta HTML.
Hola, Estimado amigo.
Muy buenas veras quería ver si me podrías ayudar con esto.
Tengo una tabla creada llamada wp_calificaciones, en donde se ingresa datos mediante un plugins llamado WP_ Data Access, en esos datos que se ingresan uno es un adjunto en PDF, en el MYSQL, eh creado una celda llamada ACTA, con tipo BLOB, y hay es donde se guardan todo los PDF, que estan subidos en la MEDIA de mi pagina echa en wordpress.
Quisiera saber como podría, hacer para que con el codigo que usted tiene del shorcode, me muestre el PDF, al realizar la búsqueda, ya que al momento de hacer la búsqueda me muestra lo datos y en el campo acta me sale la numeración de ingreso, pero no en si lo que es la acta para visualizarla.
Me podría ayudar por favor.
Muchas gracias.
Hola, lo usual es guardar la ruta del archivo, no el archivo PDF en la BD, ya que esto te complicará la administración.
Si tienes la ruta será más fácil ya que mostrarías simplemente ese dato como enlace.
Saludos.
Saludos cordiales para ud .mire tengo un problema a ver si me puede ayudar . yo tengo una página de base de datos en Word Press y lo que quiero en esa página es ingresar un shorts Code para personalizar la búsqueda de mi base de datos de My Admin pero sin mostrar el contenido solamente la información que se ingrese yo no soy muy diestro en esto pero si me explica lo voy haciendo paso al paso y también tengo temor de dañar la página por funtion php del la página ya que no tengo la destreza también tengo visual Code instalado y baje local Xampp que incluye Apache mi pregunta? Como puedo convertir un php en shorts Code para ingresarlo en mi página oh esa no sería la solución que ud me sugiere que estoy un poco perdido muchísimas gracias
Me parecen muy util usar shortcodes en wordpreess, es mas facil cambiar las rutas o insertarlas en cualquier pagina sin afectar nada, perfectamente se puede transformar una web en webapp con php y mysql basico con wordpress.