【发布时间】:2018-10-30 19:48:20
【问题描述】:
我觉得我已经接近了,但如果array_search 的输出在输出中包含相同的值,我不完全确定如何合并。仅供参考 - 我正在使用 WordPress 来查询这些数据。
这是我目前所拥有的:
PHP:
<?php
global $wpdb,$post;
$result = $wpdb->get_results("SELECT $wpdb->posts.* FROM $wpdb->posts WHERE post_type = 'clients'");
foreach ($result as $post):
setup_postdata($post);
$terms = wp_get_post_terms($post->ID, array( 'state', 'product_type' ));
$result = array_search('state', array_column($terms, 'taxonomy', 'name'));
$term = $terms[0];
?>
<?php if ($term -> taxonomy === 'state' && !empty($term)) : ?>
<p><?php echo $terms[1]->name; ?>, <?php echo $terms[0]->name; ?></p>
<?php endif; ?>
<?php endforeach;?>
<?php wp_reset_postdata(); ?>
将输出:
Shirts, Alabama
Shirts, Colorado
Jeans, Colorado
Jeans, Iowa
Socks, Maine
但我想将 Jeans 和 Shirts 组合在一起以输出:
Shirts, Alabama, Colorado
Jeans, Colorado, Iowa
Socks, Maine
这也应该设置它,以便如果有另一个项目,例如Sweaters,它也会将这些项目组合在一起。
我也不确定我是否“正确”地写了这篇文章,所以我也愿意接受建议。
【问题讨论】:
-
见 array_unique() -> php.net/manual/fr/function.array-unique.php
-
您是否在屏幕上显示类似逗号分隔的数据?还是这正是您表达该问题所需输出的方式?我的意思是,您可以使用
GROUP BYANDGROUP CONCAT()在查询中将所有这些拼接在一起,但我不确定您是如何执行任务的。 -
好吧,最终,我会把它输出到不同的东西,所以我只是展示这个例子并测试一下。我已经考虑修改我的查询,但问题是 WordPress 不会将分类数据存储在 post 表中。我试图对与帖子和分类法相关的其他表进行一些连接,但它从未产生我想要的结果。