Drupal 7 ブロックで、特定のボキャブラリの分類用語を順不同リストにリストし、その分類用語の一部である公開ノードを子として作成しようとしています。
例:
Products というボキャブラリがあり、分類用語 Beer、Wine、および Whisky があるとします。ビールには 2 つのコンテンツ ノード (ギネスとバドワイザー) が接続されているとします。
最終的には次のようになります。
- ビール (2)
- ギネス
- バドワイザー
- ワイン (2)
- ピノ・ノワール
- ホワイトジンファンデル
- ウイスキー (3)
- ジャックダニエル
- メーカーズマーク
- クラウン ロイヤル
分類用語をカウントとともに「ちょうど」表示する方法を見つけましたが、各用語に関連するすべての公開ノードを印刷する方法がわかりません。これが私が得たものです:
<?php
$vid = 1; //vocabulary id
$query = "SELECT tid, name, count
FROM (
SELECT td.tid AS tid, name, COUNT(td.tid) AS count
FROM taxonomy_term_data AS td
JOIN taxonomy_index AS tn
ON td.tid = tn.tid
JOIN node AS n
ON n.nid = tn.nid
WHERE td.vid = ". $vid ."
AND n.status = 1
GROUP BY td.tid
ORDER BY count DESC
) AS t
ORDER BY name ASC";
$result = db_query($query);
print '<ul>';
foreach($result as $term) {
if ($term->count > 0) {
print '<li>';
echo l($term->name, "taxonomy/term/$term->tid").' ('.$term->count.')';
print '</li>';
}
}
print '</ul>';
?>
これにより、次の出力が生成されます。
- ビール (2)
- ワイン (2)
- ウイスキー (3)
しかし、これらの分類用語の子に、その分類用語の一部である公開ノードを表示するにはどうすればよいでしょうか?
何か案は?
ありがとうございました