你好@Hunter Brelsford:
很高兴在这里看到你WordPress Group on LinkedIn.
也许我误解了你的问题,但听起来你是simply trying to get rid of dups in an array? 例如,假设您有一个阵列客户端:
<?php
$clients = array(
\'Jones Construction\',
\'Smith Wholesale\',
\'Smith Wholesale\',
\'Williams Dry Cleaning\'
);
你想转换成这样的数组吗?
<?php
$clients = array(
\'Jones Construction\',
\'Smith Wholesale\',
\'Williams Dry Cleaning\'
);
(
如果是,那是一个PHP问题,而不是WordPress问题,通常是we send away, 但我还是会在这里回答你)
这很容易;由于数组键在PHP中是唯一的,只需翻转数组(用它们的键交换值),然后返回数组键,就可以得到唯一的数组,如下所示:
<?php
$clients = array(
\'Jones Construction\',
\'Smith Wholesale\',
\'Smith Wholesale\',
\'Williams Dry Cleaning\'
);
print_r(array_keys(array_flip($clients)));
该代码打印:
Array
(
[0] => Jones Construction
[1] => Smith Wholesale
[2] => Williams Dry Cleaning
)
这就是你想要的吗?
更新:
您好
@Hunter Brelsford:
我正在回复您的更新。好吧,我们为什么不试着用另一种方式来解决这个问题呢?下面是一个独立的示例,您可以将其复制到网站的根目录中test.php
然后作为http://magicvideo.com/test.php
要查看其工作情况,请执行以下操作:
<?php
include "wp-load.php";
header(\'Content-Type:text/plain\');
global $wpdb;
$sql = <<<SQL
SELECT DISTINCT
tt.term_id
FROM {$wpdb->posts} p
INNER JOIN {$wpdb->term_relationships} tr ON p.ID = tr.object_id
INNER JOIN {$wpdb->term_taxonomy} tt ON tt.term_taxonomy_id = tr.term_taxonomy_id
WHERE 1=1
AND p.post_status=\'publish\'
AND p.post_type=\'our_work\'
AND tt.taxonomy=\'client_name\'
SQL;
$terms = $wpdb->get_results($sql);
$term_ids = array();
foreach($terms as $term) {
$term_ids[] = $term->term_id;
}
$terms = get_terms(\'client_name\',array(
\'include\'=> implode(\',\',$term_ids),
));
print_r($terms);
我们使用原始SQL查询
taxonomy=\'client_name\'
对于
\'post_type=\'our_work\'
然后我们收集
$term->term_id
s来筛选分类术语列表。我使用原始SQL是因为WordPress没有提供一种通过API获取数据的好方法,至少我在短时间内找不到这种方法(如果其他人知道通过API的更好方法,不需要加载太多数据,请告诉我)。
希望这将提供一种方法,以便您能够在示例中使用此代码?如果不知道,请告诉我。