我做相关文章是按关键词来做的,用的是drupal 7里面默认的tag分类字段。 首先在views建立两个过滤条件' r0 U: \5 M" |# t+ U5 g7 }9 g U
排除指定node,符合多个分类的tid(因为是根据关键词相关,所以得把node自己排除) 内容: Nid 最下面更多中选择不包含+ \7 R0 q9 `) @! p9 V6 W
内容: Has taxonomy term ID 选择多选 过滤输入为[nid]/[tid1]+[tid2]+[tid3],这样相关文章的views就弄好了。 L) ?+ A4 R0 r9 V) t$ S8 \9 l! U
保存为 名称为xiangguan的views,其中一块机读名称为block,后面会用到。 然后是得在页面里面显示出来,放在block里面输出,比较烦一点,因为没有相关的变量可以用,得用arg()捕获。 我是放在node.tpl.php中输出的,位置正好放在留言上面,另一个原因是node里面的几个变量好用。 $nid: node Number ID.
& D, L# I8 Q/ s" T# X' ~7 M8 w$type: Node type, i.e. story, page, blog, etc.
" A% x5 F/ R( {$ ~; a4 ^$view_mode: View mode, e.g. ‘full’, ‘teaser’…% E- T$ \6 ~8 C6 F. G, D
$node: Full node object. Contains data that may not be safe." i, ~* t: F* w5 m7 p: C$ B
剩下的事情就简单了,使用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变量里面去找相应的东西吧。相关的文档可以参考
5 o! b4 J3 G4 w, x- U4 i) ~- w' A# d0 `, k2 I5 \! P1 z% \9 _
$ L9 T$ Y, D8 i' Y
: n( I6 w5 m5 Y. E! H
|