|
我做相关文章是按关键词来做的,用的是drupal 7里面默认的tag分类字段。 首先在views建立两个过滤条件
; j- E- ~* q) N1 ?排除指定node,符合多个分类的tid(因为是根据关键词相关,所以得把node自己排除) 内容: Nid 最下面更多中选择不包含
5 ~8 {1 D. d1 }; g+ q内容: Has taxonomy term ID 选择多选 过滤输入为[nid]/[tid1]+[tid2]+[tid3],这样相关文章的views就弄好了。1 j6 g* A M+ b1 O, o) u( ], R% l, {
保存为 名称为xiangguan的views,其中一块机读名称为block,后面会用到。 然后是得在页面里面显示出来,放在block里面输出,比较烦一点,因为没有相关的变量可以用,得用arg()捕获。 我是放在node.tpl.php中输出的,位置正好放在留言上面,另一个原因是node里面的几个变量好用。 $nid: node Number ID.3 @- {9 A$ e. J/ t4 a4 S6 z) _$ _
$type: Node type, i.e. story, page, blog, etc.' t- |- @1 ^2 A# I# m' m
$view_mode: View mode, e.g. ‘full’, ‘teaser’…
0 N6 x. K7 H* I3 j$node: Full node object. Contains data that may not be safe.
9 h" L" h2 H/ d0 {0 O; q5 \剩下的事情就简单了,使用views_embed_view($name, $display_id = ‘default’)输出。 if($view_mode == “full” && $type != “page”) //只在页面中输出不在taxmoney输出,不在page类型中输出 { echo ‘<h4 class=”xiangguan”>相关阅读</h4>’; $field_tags = $content['body']['#object']->field_tags['und']; //获得tags的tid for($i=0;$i<count($field_tags);$i++) { $view_number[$i] = $field_tags[$i]['tid']; } print views_embed_view(‘xiangguan’,'block’,$nid,implode(‘+’,$view_number));//输出views }如果要放在page.tpl.php中调用的话,$node变量里面去找相应的东西吧。相关的文档可以参考 7 F+ W5 l6 E# x/ t; O
' @1 N9 e6 @' b& H9 e5 w7 o
- |! F: B: b5 s5 p9 l
6 i, M4 l* V/ ~) U! }0 y& b
|