<?php
$posts = 8; // number of post to list
$tid = 74; // a taxonomy term id
$result = db_query_range('SELECT n.title, n.nid FROM {node} n
INNER JOIN {term_node} tn ON n.nid=tn.nid WHERE tn.tid = %d
ORDER BY n.created DESC', $tid, 0, $posts);
while($n = db_fetch_object($result)){
$content .= '<div>'.l($n->title, "node/$n->nid").'</div>';
}
echo $content.'<br>';
echo l(t('more').'...', "taxonomy/term/$tid");
?>
問一下,如果還要列出teaser的話呢?
teaser,4.6和4.7有重大的變動
另外,4.6的方法在這兒不試用...
野人獻曝一下,我們
野人獻曝一下,我們來試試怎麼使用 Views 這個 module 完成這件事:
* 新增一個 view
* 在 Basic Information 下
** Name 隨便給
** Access 不用設,這樣所有的 role 都可以存取到
* Page
** 把 Provide Page View 勾起來
** Url 自行給個名字
** View Type 先給它 Teaser List
** Use Pager 不要勾
** Nodes per Page 給個數字,例如 10。
* Filters
** 新增三個 filters, 分別是 "node published", "taxonomy: vocabulary name" 和 "node: distinct",其中第二個 filter 可以改成 "taxonomy: term"
* Sort Criteria
** 新增一個 "node: created time", 把它的值設為 "descending"
這樣就算完成了。
如果把 View Type 改為 "List View" 或是 "Table View",就要記得到 Fileds 裏頭,告訴它你要秀出來的欄位為何(ex, title, created time, node type....),就可以秀出和 jimmy 的程式一樣的結果了。
挺好的,我終於開始
挺好的,我終於開始比較能理解views了。
聽說views是寫程式人員最愛,和cck一樣是令人驚豔呢...
Re: 野人獻曝一下,我們
謝謝你的教學唷...
從你的這篇我終於大致了解views的基本設定了..
也順利的做出一些想要的效果了...感恩ㄚ^^
Re: 野人獻曝一下,我們
想請問drakeguan大.
我使用views使用分類..大致分類舉例如下:
1.休閒 2.生活 3.藝術 .........
請問有什麼辦法可以當我在該分類新增文章時會顯示有幾篇文章嗎?
像這樣:
1.休閒(12) 2.生活(56) 3.藝術(9)..
請指導一下...謝謝^^
剛找到這個4.7版的程式碼可以用:
Creating a paged list of nodes from a taxonomy category, with teasers.
上面那一段SQL執行後會
$result = db_query_range('SELECT n.title, n.nid FROM {node} nINNER JOIN {term_node} tn ON n.nid=tn.nid WHERE tn.tid = %d
ORDER BY n.created DESC', $tid, 0, $posts);
這一段會把指定分類中的所有node全部列出,這樣連尚未發表的文章也會顯示出來。
修改後如下:
$result = db_query_range('SELECT n.title, n.nid FROM {node} nINNER JOIN {term_node} tn ON n.nid=tn.nid WHERE n.status = 1 AND tn.tid = %d
ORDER BY n.created DESC', $tid, 0, $posts);
在 WHERE 後面加上 n.status = 1 的過濾條件,如此尚未發表的文章才不會列出來。