WP_Query - 加载延迟与多个meta_query

问题描述:

我有一个Wordpress网站,使用了不少过滤器来显示作业。WP_Query - 加载延迟与多个meta_query

查询将过滤的工作: -

  • 作业类型
  • 的位置
  • 工作部门
  • 如果它是一个国际工作
  • 将检查两个值之间的工资

我正在运行的当前查询是: -

<?php 
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
    $args = array(
     'posts_per_page'=> -1, 
     'post_type'  => 'jobs', 
     'order'    => 'DESC', 
     'posts_per_page' => 20, 
     'paged' => $paged, 
     's' => $search_field, 
    'meta_query' => array(
     'relation' => 'AND', 
     array(
      array(
       'key'  => 'job_type', 
       'value'  => $job_type, 
       'compare' => 'LIKE', 
      ), 
      array(
       'key'  => 'job_location', 
       'value'  => $job_location, 
       'compare' => 'LIKE', 
      ), 
      array(
       'key'  => 'job_sector', 
       'value'  => $job_sector, 
       'compare' => 'LIKE', 
      ), 
      array(
       'key'  => 'international_job', 
       'value'  => $international_job, 
       'type' => 'numeric', 
       'compare' => 'IN', 
      ), 
      array(
       'key'  => 'job_location', 
       'value'  => $location_array, 
       'compare' => 'NOT IN', 
      ), 
     ), 
     array(
      'relation' => 'OR', 
      array(
       'relation' => 'AND', 
       array(
        'key'  => 'anual_to_salary', 
        'value'  => array($job_salary_from,$job_salary_to), 
        'type' => 'numeric', 
        'compare' => 'BETWEEN', 
       ), 
      ), 
      array(
       'relation' => 'AND', 
       array(
        'key'  => 'anual_from_salary', 
        'value'  => array($job_salary_from,$job_salary_to), 
        'type' => 'numeric', 
        'compare' => 'BETWEEN', 
       ), 
      ), 
      array(
       'relation' => 'OR', 
       array(
        'key'  => 'job_negotiable', 
        'value'  => 'yes', 
        'compare' => '=', 
       ), 
      ), 
     ), 
     ) 
    ); 

    $fetch_jobs = new WP_Query($args);?> 

我假设这是一种不好的方式来做这种查询,因为它需要大约5-10秒来显示任何结果。

任何人都可以推荐一个更好的方式来做这种类型的查询与多个过滤器?

在此先感谢。

首先你的代码就像一个魅力,没有更好的方法来执行wp_query();.它需要5到10秒,因为有很多条件需要检查,而且完全取决于必须执行过滤的数据。

我看到了整个代码,只需要稍微更改一次,即传递相同的参数两次即posts_per_page,请更正它。否则它是执行wp_query最好的。