Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

172
Views
woocommerce_product_query no funciona en la página de categoría de productos

Tengo filtros personalizados, basados en parámetros de URL en mi tienda de WooCommerce. En functions.php tengo algo como esto:

 add_action( 'woocommerce_product_query', 'filtry1' ); function filtry1( $q ){ $meta_query = $q->get( 'meta_query' ); $meta_query[] = array( 'key' => 'my_custom_key', 'value' => $_GET['my_custom_key'], 'compare' => '==' ); $q->set( 'meta_query', $meta_query ); }

Y esto funciona muy bien en la página principal de la tienda. Veo meta_query adicional en la última consulta.

 SELECT mysite_posts.ID FROM mysite_posts INNER JOIN mysite_postmeta ON ( mysite_posts.ID = mysite_postmeta.post_id ) WHERE 1=1 AND ( mysite_posts.ID NOT IN ( SELECT object_id FROM mysite_term_relationships WHERE term_taxonomy_id IN (7) ) ) AND ( ( mysite_postmeta.meta_key = 'my_custom_key' AND mysite_postmeta.meta_value = 'VALUE-FROM-$GET' ) ) AND mysite_posts.post_type = 'acf-field' AND ((mysite_posts.post_status = 'publish')) AND mysite_posts.post_name = 'field_61729c0b8644a' GROUP BY mysite_posts.ID ORDER BY mysite_posts.menu_order ASC, mysite_posts.post_title ASC LIMIT 0, 1

Pero si estamos en la página de categoría, esta consulta no funciona. La consulta se ve así:

 SELECT mysite_posts.* FROM mysite_posts WHERE ID IN (86)
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Puede usar el gancho de acción pre_get_posts . funciona tanto para la tienda como para las páginas de categoría.

 function filtry1($query) { if( ! is_admin() && $query->is_main_query() && $query->query_vars['post_type'] == 'product') { $query->set( 'meta_query', array ( array( 'key' => 'my_custom_key', 'value' => $_GET['my_custom_key'], 'compare' => '==' ) )); } } add_action( 'pre_get_posts', 'filtry1' );
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!