按位置查询工作列表,使用" get_job_listings" WP作业管理器内部的功能

时间:2017-10-04 13:34:36

标签: php wordpress

我正在使用Word Job的WP作业管理器,目前我的主题中有以下代码可以提取作业并在我的主页上显示它们。

<?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 个答案:

答案 0 :(得分: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();
 }