要在頁面或區塊中嵌入一個views的view,有兩個作法。
簡單的應用,可以直接利用 views_embed_view() 來達成,語法範例如下:
//views_embed_view('views_machine_name','display_id'[, $contextual_args]); print views_embed_view('blog_posts','block_1', $node->nid);
但如果需要嵌入包含exposed_filter的views,又不希望頁面中出現exposed filter的表單時,可能就必須用views_get_vew(),方法如下:
//設定篩選器的參數內容 $filters=array('field_a'=>'value1','field_b'=>'value2'); //取得views物件 $view = views_get_view('views_machine_name'); //指定exposed filter的參數 $view->set_exposed_input($filters); //取得指定的display $view->set_display('block_matched_jobs'); //執行views查詢 $view->pre_execute(); $view->execute(); //移除exposed filter的表單 unset($view->exposed_widgets); //輸出views 結果 echo $view->render();
特殊案例 - exposed filter的日期參數
日期參數比較特殊,在設定篩選器的時候要用以下的格式(參考這篇):
//欄位名稱為field_my_date_field //本範例之exposed filter的設定為「年」 $filters = array('field_my_date_field_value' => array('value' => array('year' => $year)));