Một cách để hạn chế điều này trong mã sẽ là thêm một cái gì đó như sau vào một mô-đun tùy chỉnh:
function custom_views_pre_render(&$view) {
//get the rows from the view just before render
$results = $view->result;
//create a counter
$count = '';
//we're going to built up a new $result array
$new_results = array();
//iterate through each view row
foreach($results as $result) {
//find the taxonomy term
$term = $result->taxonomy_term_data_name;
//add the term to a string of all the terms we've seen so far
$count .= $term;
//make sure to separate them with spaces to make them easier to count
$count .= ' ' ;
//count how many rows have the same term as the current one
$term_count = array_count_values(str_word_count($count, 1));
if($term_count[$term] <= 3){
//if this is the third or fewer row with this term, add it to the new result array
$new_results[] = $result;
}
}
//instead of the normal view output, only show the results we put in our array.
$view->result = $new_results;
}
Đây là để xem các thuật ngữ phân loại được kết nối với các nút thông qua mối quan hệ. Nếu bạn chỉ có chế độ xem các nút, số dặm của bạn có thể thay đổi.
Mặc dù nó ngăn không cho hiển thị hơn 3 mỗi thuật ngữ, nhưng điều này sẽ không ngăn truy vấn trả về tất cả các kết quả cho mỗi thuật ngữ, vì vậy nó hoàn toàn không cải thiện hiệu suất SQL. Nếu bạn có số lượng kết quả rất lớn cho mỗi thuật ngữ, hãy hiển thị bảng điều khiển chế độ xem riêng biệt và đặt tất cả chúng vào một vùng bằng cách sử dụng Trình quản lý trang CTools để bạn không chạy các truy vấn lớn.
Như mọi khi, bạn sẽ muốn lưu trữ những thứ này vào sản xuất.