首页 > 解决方案 > 获取受帖子类别限制的自定义字段值列表

问题描述

我为一些帖子添加了一个自定义字段(位置)。我想从特定帖子类别的帖子中获取所有位置,并将这些位置存储在一个数组中。然后,我想在类别模板文件(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>";
    }
}

我需要能够从特定类别 ID(例如 6)中获取所有位置。请帮忙!

标签: mysqlwordpresscustom-fields

解决方案


您需要先从您的类别中查询帖子,然后遍历每个帖子以获取每个帖子的元值。尝试这个。

$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>";
    }



推荐阅读