wp-query – Mostrar productos de una categoría específica en la página de la tienda

Pregunta:

Sé que muchas personas hicieron esta pregunta, pero no encontré una manera adecuada de hacerlo. Cómo agregar una meta_query simple (product_cat) antes de la ejecución de la consulta de la página de la tienda.

¿Quizás usando un filtro?

Saludos,

Adrien

Respuesta:

La página de la tienda es en realidad una página de archivo para publicaciones de tipo 'producto'. Su plantilla está en woocommerce / archive-product.php.

Debe utilizar la acción pre_get_posts para preprocesar la consulta antes del bucle, conditional_tags para reconocer que se encuentra en la página de archivo del producto y una consulta de taxonomía para filtrar las categorías de productos, que pertenecen a la taxonomía 'product_cat'.

Por ejemplo, lo siguiente (colocado en functions.php de su tema o en un complemento) mostrará solo productos con categoría de producto 'tipo-1':

 add_action('pre_get_posts','shop_filter_cat');

 function shop_filter_cat($query) {
    if (!is_admin() && is_post_type_archive( 'product' ) && $query->is_main_query()) {
       $query->set('tax_query', array(
                    array ('taxonomy' => 'product_cat',
                                       'field' => 'slug',
                                        'terms' => 'type-1'
                                 )
                     )
       );   
    }
 }

También puede excluir categorías usando 'operator' => NOT IN, y 'terms' puede ser una matriz de slugs de categorías de productos.

Una buena introducción a la personalización de consultas es http://www.billerickson.net/customize-the-wordpress-query/

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım