mysql - 获取受帖子类别限制的自定义字段值列表
问题描述
我为一些帖子添加了一个自定义字段(位置)。我想从特定帖子类别的帖子中获取所有位置,并将这些位置存储在一个数组中。然后,我想在类别模板文件(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)中获取所有位置。请帮忙!
解决方案
您需要先从您的类别中查询帖子,然后遍历每个帖子以获取每个帖子的元值。尝试这个。
$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>";
}
推荐阅读
- javascript - Javascript:带有“this”的动态变量名?
- java - 如何在不创建 AWS 资源的情况下验证 Java 8 中的 AWS cron 表达式?
- go - 在 Go 时间模块上苦苦挣扎
- python - “TypeError:'str'对象不可调用”通过Python + Selenium在expected_conditions中传递定位器
- rest - Bitly URL Shortener - 尝试缩短 URL 时 MISSING_ARG_LOGIN
- javascript - Three.js 使用 raycaster intersectObjects 忽略被遮挡的对象
- excel - Excel 宏 SUMIF 为什么返回 False?
- jenkins - 无法让 Slack 连接器从 Jenkins 工作
- php - 为什么 MS 团队中的占位符在简单的自定义 url 选项卡中不起作用?
- python - 构建 CNN 模型时,训练数据的顺序是否重要?