Получить список значений настраиваемых полей, ограниченных категорией сообщений - PullRequest
0 голосов
/ 20 сентября 2019

Я добавил настраиваемое поле (местоположение) для некоторых сообщений.Я хочу получить все местоположения из сообщений определенной категории и сохранить их в массиве.Затем я хочу отобразить их в раскрывающемся списке в файле шаблона категории (category-6.php)

Я использую wpdb и получаю только все местоположения.Я не могу ограничить их по категориям.

$places = $wpdb->get_col($wpdb->prepare("SELECT DISTINCT meta_value FROM 
$wpdb->postmeta WHERE meta_key = %s ORDER BY meta_value ASC", $metakey) );

if ($places) {
    foreach ($places as $place) {
      echo "<option value=\"" . $place . "\">" . $place . "</option>";
    }
}

Мне нужно иметь возможность получить все местоположения из определенного идентификатора категории (например, 6).Пожалуйста, помогите!

Ответы [ 2 ]

0 голосов
/ 21 сентября 2019

Сначала необходимо запросить сообщения из вашей категории, а затем выполнить итерацию по каждому из них, чтобы получить мета-значение для каждого сообщения.Попробуй это.

$args = array (

  'category' => 6,  /* insert ID of your category */
  'numberposts' => -1 /* -1 for all posts */
);

$posts = get_posts($args); /* get all the posts in the category */

$locations = []; /* set up the array */

foreach ($posts as $post) {

   /* get the location value for each post in the category */

   $meta_location = get_post_meta($post->ID, 'location', false); 

   /* add the value to the array */

   $locations[] = $meta_location;

}

foreach ($locations as $location) {
      echo "<option value=\"" . $location . "\">" . $location . "</option>";
    }


0 голосов
/ 20 сентября 2019

Можете ли вы попробовать вот так

$places = get_posts(array(      
    'post_type' => 'post',
    'post__in' => array(6),
    'meta_query' => array(
        array(
            'key' => 'location',            
        )
    )
));

if ($places) {
   echo '<select name="tour" id="t1">';
   foreach ($places as $key) {                              
      echo '<option value="'.$key->slug.'">'.$key->name.'</option>';
   }
   echo '</select>';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...