在对Archive.php调用get_post()之前添加查询字符串的选项

时间:2018-01-11 作者:Byeongin Yoon

我正在开发基于woocommerce的shoppingmall。

我确实在每个产品上添加了一些“post meta”。

enter image description here

如你所知,如果我们点击商店页面,wordpress核心查询如下

SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND ( wp_posts.ID NOT IN ( SELECT object_id FROM wp_term_relationships WHERE term_taxonomy_id IN (16) ) ) AND wp_posts.post_type = \'product\' AND (wp_posts.post_status = \'publish\') GROUP BY wp_posts.ID ORDER BY wp_posts.menu_order, wp_posts.post_date DESC, wp_posts.ID DESC LIMIT 0, 12

我想添加一些这样的条件

仅获取与此项目关联的“\\u user\\u request”为“post meta”的产品为“yes”

因此,如果某个产品的“post meta”的“user\\u request”为“no”,则不要获取此产品。

我该怎么做?

1 个回复
SO网友:Byeongin Yoon

function rpf_add_query_var_not_to_show_user_request_product($query) {

  $post_type = $query->get( \'post_type\' );
    if ( ! is_null($post_type) && $post_type == \'product\' ) {
      $query->set( \'meta_key\', \'_user_request\' );
      $query->set( \'meta_value\', \'no\' );
      $query->set( \'meta_compare\', \'=\' ); // default
    }
  }
  add_action( \'pre_get_posts\', 
\'rpf_add_query_var_not_to_show_user_request_product\', 100, 1 );
是的,pre\\u get\\u posts是天堂!和$query->set(),$query->get()是天使!

结束

相关推荐

WP_QUERY中有多个值:CATEGORY__AND

我希望有人能帮助我,因为我已经搜索了,但找不到答案。。。我正在使用一个快捷码中的循环来显示相关项的列表,并且我很难理解在and参数中选择多个类别的逻辑。例如,我有这样一个类别结构:Products (id: 1) Prod A (id: 2) Prod B (id: 3) Services (id: 4) Service A (id: 5) Service B (id: 6) Overview (id: 7) 我想做的是显示