WC_Query::product_query()
Query the products, applying sorting/ordering etc. This applies to the main WordPress loop.
Метод класса: WC_Query{}
Хуки из метода
Возвращает
null
. Ничего (null).
Использование
$WC_Query = new WC_Query(); $WC_Query->product_query( $q );
- $q(WP_Query) (обязательный)
- Query instance.
Код WC_Query::product_query() WC Query::product query WC 8.7.0
public function product_query( $q ) { if ( ! is_feed() ) { $ordering = $this->get_catalog_ordering_args(); $q->set( 'orderby', $ordering['orderby'] ); $q->set( 'order', $ordering['order'] ); if ( isset( $ordering['meta_key'] ) ) { $q->set( 'meta_key', $ordering['meta_key'] ); } } // Query vars that affect posts shown. $q->set( 'meta_query', $this->get_meta_query( $q->get( 'meta_query' ), true ) ); $q->set( 'tax_query', $this->get_tax_query( $q->get( 'tax_query' ), true ) ); $q->set( 'wc_query', 'product_query' ); $q->set( 'post__in', array_unique( (array) apply_filters( 'loop_shop_post_in', array() ) ) ); // Work out how many products to query. $q->set( 'posts_per_page', $q->get( 'posts_per_page' ) ? $q->get( 'posts_per_page' ) : apply_filters( 'loop_shop_per_page', wc_get_default_products_per_row() * wc_get_default_product_rows_per_page() ) ); // Store reference to this query. self::$product_query = $q; // Additional hooks to change WP Query. self::add_filter( 'posts_clauses', array( $this, 'product_query_post_clauses' ), 10, 2 ); add_filter( 'the_posts', array( $this, 'handle_get_posts' ), 10, 2 ); do_action( 'woocommerce_product_query', $q, $this ); }