Filtro de Productos con PHP y JavaScript en WordPress
Clase 14 de 29 • Curso Profesional de WordPress
Contenido del curso
- 4

Organización de Contenidos en WordPress: Taxonomías y Etiquetas
03:02 - 5

Creación de Archivos PHP en WordPress para Mostrar Categorías
10:21 - 6

Mejorando la Navegabilidad en Sitios Web con WordPress
06:07 - 7

Personalización de Post Types en WordPress
02:12 - 8

Diferenciar Interfaces de Productos y Novedades en WordPress
02:14 - 9

WordPress: Crear Menú de Productos Relacionados con Loop Personalizado
11:20 - 10

Registro de Taxonomías Personalizadas en WordPress
18:42 - 11

Personalización de Páginas en WordPress con Advanced Custom Fields
10:31
- 19

Creación y Uso de Bloques en el Editor Gutenberg de WordPress
05:18 - 20

Creación de Bloques Personalizados en WordPress con PHP y JavaScript
13:30 - 21

Creación de Bloques Editables en WordPress con React
11:16 - 22

Bloques Dinámicos en WordPress: Creación y Uso Avanzado
05:47 - 23
Uso de InspectorControls en Bloques de WordPress
04:48 - 24

Registro y Personalización de Bloques en WordPress con ACF
12:51 - 25
Creación de Bloque Nativo con Renderizado del Lado del Servidor (SSR)
11:38
¿Cómo crear un filtro de productos en una página principal?
Crear un filtro de productos es una habilidad esencial para cualquier desarrollador que busca mejorar la funcionalidad y la experiencia del usuario en un sitio web. En esta guía, aprenderás cómo incorporar un filtro de categorías en una página de productos usando HTML, PHP y JavaScript.
¿Cómo se estructura el HTML para el filtro de categorías?
El primer paso en la construcción del filtro de productos es entender la estructura HTML adecuada. Incluirás un elemento <select> para que los usuarios escojan la categoría que desean filtrar.
<!-- Insertar dentro de un contenedor adecuado -->
<div class="col">
<select id="categoriaProductos" class="form-control">
<option value="">Todas las categorías</option>
<!-- Las opciones serán generadas dinámicamente -->
</select>
</div>
¿Cómo cargar dinámicamente las categorías con PHP?
Para cargar las categorías de productos, utilizarás PHP para obtener los términos de una taxonomía específica. Usarás el método get_terms() que te permitirá traer sólo las categorías que tienen productos asociados.
<?php
// Obtener términos de la taxonomía 'categoria_productos'
$terms = get_terms('categoria_productos', array(
'hide_empty' => true
));
// Recorrer y mostrar cada término
foreach($terms as $term) {
echo '<option value="'.$term->slug.'">'.$term->name.'</option>';
}
?>
¿Cómo conectar el filtro a JavaScript para registrar cambios?
Una vez que tengas tu selector cargado con las categorías, el siguiente paso es hacer que tu aplicación responda a los cambios que un usuario realice en este selector. Esto se logra mediante JavaScript para escuchar eventos de cambio en el <select>.
jQuery(document).ready(function($) {
// Cuando cambia el valor del selector de categoría
$('#categoriaProductos').on('change', function() {
// Ejecuta el filtro en el cambio de selección
console.log('Categoría seleccionada: ', $(this).val());
// Aquí se establecería la lógica para manejar la nueva categoría seleccionada
});
});
¿Cómo configurar Ajax para el filtro de categorías?
Para que tu filtro de categorías sea completamente funcional y realice cambios mediante Ajax, es necesario que configures una petición Ajax. Esto implica enviar datos al servidor y recibir una respuesta sin necesidad de recargar la página.
function realizarFiltro() {
var categoriaSeleccionada = $('#categoriaProductos').val();
// Realizar la petición Ajax
$.ajax({
url: ajaxurl, // Será el enlace al archivo handler de Ajax en PHP
type: 'POST',
data: {
action: 'filtrar_productos', // Acción definida para la llamada
categoria: categoriaSeleccionada
},
success: function(response) {
// Manejar la respuesta obtenida
$('#contenedor-productos').html(response);
}
});
}
¿Cómo enlazar el backend con Ajax para completar el filtro?
Finalmente, en el archivo PHP, manejas la llamada Ajax utilizando el hook wp_ajax, escuchando la acción que configuraste en tu función JavaScript.
// Función que retornará los productos filtrados
function filtrar_productos_callback() {
$categoria = $_POST['categoria'];
// Consultar productos por la taxonomía de la categoría
$args = array(
'post_type' => 'producto',
'tax_query' => array(
array(
'taxonomy' => 'categoria_productos',
'field' => 'slug',
'terms' => $categoria,
),
),
);
$query = new WP_Query($args);
if($query->have_posts()) {
while($query->have_posts()) {
$query->the_post();
// Formato de salida de cada producto
}
} else {
echo 'No hay productos en esta categoría';
}
wp_die(); // Terminar ejecución
}
add_action('wp_ajax_filtrar_productos', 'filtrar_productos_callback');
add_action('wp_ajax_nopriv_filtrar_productos', 'filtrar_productos_callback');
Este enfoque te ayudará a agregar funcionalidad dinámica a tu sitio web, mejorando la experiencia de usuario al permitirles filtrar productos sin tener que recargar la página. ¡Sigue adelante y mejora tu sitio web con estas técnicas!