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

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

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

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

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

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

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

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

Personalización de Páginas en WordPress con Advanced Custom Fields
10:31 min
Utilizar AJAX
La REST-API de WordPress
Utilizar Bloques
- 19

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

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

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

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

Registro y Personalización de Bloques en WordPress con ACF
12:51 min - 25
Creación de Bloque Nativo con Renderizado del Lado del Servidor (SSR)
11:38 min
Deployment
Finalizar el Curso
¿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!