带有WooCommerce短码查询的Pre_Get_Posts

时间:2018-08-03 作者:Raja Mohammed

我想添加一些额外的查询变量,并为woocommerce[产品]快捷码定制查询。我试图用pre\\u get\\u posts和posts\\u fields挂钩添加一些额外的字段和条件,但它们都不起作用。是否有其他方法可以过滤(自定义)特定于woocommerce短代码的SQL查询?

1 个回复
SO网友:user141080

您可以使用WooCommerce筛选器woocommerce_shortcode_products_query 更改/操作查询参数。

此示例来自shortcode文档。

使用产品快捷码时,可以选择按上述预定义值订购产品。您还可以使用下面的代码按自定义元字段对产品进行排序(在本例中,我们按价格订购产品):

add_filter( \'woocommerce_shortcode_products_query\', \'woocommerce_shortcode_products_orderby\' );

function woocommerce_shortcode_products_orderby( $args ) {

  $standard_array = array(\'menu_order\',\'title\',\'date\',\'rand\',\'id\');

  if( isset( $args[\'orderby\'] ) && !in_array( $args[\'orderby\'], $standard_array ) ) {
    $args[\'meta_key\'] = $args[\'orderby\'];
    $args[\'orderby\']  = \'meta_value_num\'; 
  }

 return $args;
}

结束

相关推荐