Các chủ đề bình luận bắt đầu ở đây mô tả một cách giải quyết hiệu quả. MotoTribe liên kết với cùng một chủ đề, nhưng tại thời điểm câu hỏi của anh ấy, không có ví dụ hoạt động trên trang đó. Bây giờ có, như sau:
Trong mô-đun của bạn, thực hiện hook_views_api()
:
function MODULENAME_views_api() {
return array(
'api' => 3,
);
}
Sau đó, thêm một tệp mới vào mô-đun của bạn có tên MODULENAME.view.inc và thực hiện hook_views_query_alter()
:
function MODULENAME_views_query_alter(&$view, &$query) {
if ($view->name == 'whatever_your_view_is_called') {
$query->where[0]['type'] = 'OR';
}
}
Cũng cần lưu ý về cảnh báo này:
Rõ ràng, bộ lọc "Nội dung: Đã xuất bản (Có)" đi kèm với mọi Chế độ xem được coi là một phần của cùng một nhóm bộ lọc với các bộ lọc theo ngữ cảnh (nhóm 0). Vì vậy, để làm cho chế độ xem của tôi chỉ hiển thị các nút được xuất bản thuộc bất kỳ nhóm nào được chỉ định bởi các bộ lọc theo ngữ cảnh (đã xuất bản AND (arg1 OR arg2 OR ...)), tôi đã phải chuyển "Nội dung: Đã xuất bản (Có)" vào một nhóm bộ lọc mới (sử dụng hộp thoại "Và / Hoặc, Sắp xếp lại"). Lưu ý rằng UI không hiển thị bộ lọc "Nội dung: Đã xuất bản (Có)" sau khi tôi chuyển nó sang một nhóm mới (không có bất kỳ nhóm nào khác), nhưng trong đối tượng truy vấn được truyền vào hook_views_query_alter()
nó đã di chuyển nó từ nhóm 0 vào nhóm 1, khiến mã trong các hàm trên không còn ảnh hưởng đến nó nữa.