简单的问题。我有以下自定义查询。如何通过“echo?”生成数组的html列表
$q_result = $wpdb->get_col("SELECT DISTINCT {$wpdb->terms}.name FROM {$wpdb->terms}
INNER JOIN {$wpdb->term_taxonomy} ON {$wpdb->term_taxonomy}.term_id = {$wpdb->terms}.term_id
INNER JOIN {$wpdb->term_relationships} ON {$wpdb->term_taxonomy}.term_taxonomy_id = {$wpdb->term_relationships}.term_taxonomy_id
WHERE {$wpdb->term_taxonomy}.taxonomy = 'series' AND {$wpdb->term_relationships}.object_id IN (
SELECT object_id FROM {$wpdb->term_relationships}
INNER JOIN {$wpdb->term_taxonomy} ON {$wpdb->term_taxonomy}.term_taxonomy_id = {$wpdb->term_relationships}.term_taxonomy_id
WHERE {$wpdb->term_taxonomy}.taxonomy = 'media_type' AND {$wpdb->term_taxonomy}.term_id = '16'
ORDER BY {$wpdb->terms}.term_order DESC
) ORDER BY {$wpdb->terms}.term_order ASC");
答案 0 :(得分:0)
您可以使用foreach
-
foreach( $q_result as $result ){
echo "<a href='/series/".$result."/>".$result."</a>";
}
如果您希望它也显示HTML,则必须回显正确的HTML标记。以上将为该术语的链接工作 - 格式为TAXONOMY / TERM_SLUG但是您只返回名称,您需要使用get_results()
获取名称和slug才能正确执行。
使用表别名重新格式化示例,返回术语和slug:
$sql = <<<SQL
SELECT DISTINCT t.name, t.slug
FROM {$wpdb->terms} t
INNER JOIN {$wpdb->term_taxonomy} tt
ON tt.term_id = t.term_id and tt.taxonomy = 'series'
INNER JOIN {$wpdb->term_relationships} tr
ON tt.term_taxonomy_id = tr.term_taxonomy_id
WHERE tr.object_id IN (
SELECT object_id
FROM {$wpdb->term_relationships} tr2
INNER JOIN {$wpdb->term_taxonomy} tt2
ON tt2.term_taxonomy_id = tr2.term_taxonomy_id AND tt2.taxonomy = 'media_type' AND tt2.term_id = '16'
ORDER BY {$wpdb->terms}.term_order DESC
)
ORDER BY {$wpdb->terms}.term_order ASC
SQL;
$terms = $wpdb->get_results( $sql );
for ( $terms as $term ){
echo "<a href='/series/{$term->slug}/'>{$term->name}</a><br/>";
}