2017-10-04 80 views
0

我正在使用WordPress的WP作业管理器,并且目前在我的主题中包含以下代码,用于抽取作业并将它们显示在我的主页上。使用WP作业管理器内部的“get_job_listings”功能查询作业列表

<?php 

     $jobs = get_job_listings(array(
      'posts_per_page' => 3, 
      'orderby'   => 'date', 
      'order'    => 'DESC' 
     )); 

if ( $jobs->have_posts()) { ?> 

     <ul> 
     <div class="container"> 
      <?php while ($jobs->have_posts()) : $jobs->the_post(); ?> 
       <?php get_job_manager_template_part('content-widget', 'job_listing'); ?> 
      <?php endwhile; ?> 
     </div> 
     </ul> <?php 

    //* Restore original Post Data 
    wp_reset_postdata(); 

} 

?> 

这很简单,它的工作原理,但我想要做的是只显示来自特定国家的工作。

我想在一页上列出我在英国的所有工作。所有来自德国的工作,然后在第三页显示所有不在英国或德国的工作。

回答

1

看起来您实际上可以将search_location传递到您的get_job_listings查询中。因此对于德国,你运行的东西这样的:

 $jobs = get_job_listings(array(
     'posts_per_page' => 3, 
     'orderby'   => 'date', 
     'order'    => 'DESC', 
     'search_location' => 'Germany' 
    )); 

要删除每个您的评论显示国家,我不得不从查询中排除麻烦,所以我只能告诉你如何才能不显示出来......在换句话说,这可能是一种更有效的方法,但我无法实现。所以这可能会适合您的需求:

$jobs = get_job_listings(array(
    'posts_per_page' => -1, 
    'orderby'   => 'date', 
    'order'    => 'DESC', 

)); 

if ( $jobs->have_posts()) { ?> 

<ul> 
<div class="container"> 
    <?php while ($jobs->have_posts()) : $jobs->the_post(); ?> 
    <?php $country = get_post_meta(get_the_ID(), 'geolocation_country_short', true); ?> 
    <?php 
     if ($country == 'DE' || $country == 'NO'){ 
     continue; 
     }else { 
     get_job_manager_template_part('content-widget', 'job_listing'); 
     } 
    ?> 
<?php endwhile; ?> 
</div> 
</ul> <?php 


wp_reset_postdata(); 
} 
+0

谢谢,很好。你知道我可能会排除位置吗?例如,列出除德国和挪威之外的所有工作。 –

+0

我更新了我以前的答案。让我知道这是如何解决的。 –