2012-10-24 30 views
14

Buổi sáng, tôi đang cố gắng để có được một tập hợp các kiểu nút mới nhất nhưng dường như không thể tìm ra cách sắp xếp chúng theo ngày. Heres chức năng của tôi cho đến nay:Drupal 7 - entityFieldQuery Order

function latest_nodes($type, $limit = 15, $offset = 0) { 
    $query = new EntityFieldQuery(); 
    $tmp = $query->entityCondition('entity_type', 'node'); 
    if(is_string($type)) 
     $tmp->entityCondition('bundle', $type); 
    elseif(is_array($type)) 
     $tmp->entityCondition('bundle', $type, 'IN'); 
    $tmp->range($offset, $limit); 
    $results = $tmp->execute(); 
    return node_load_multiple(array_keys($results['node'])); 
} 

bất kỳ trợ giúp nào sẽ được đánh giá cao!

Trả lời

19

Bạn đang tìm kiếm hàm thành viên fieldOrderBy(), ví dụ:

$query = new EntityFieldQuery(); 
$query->fieldOrderBy('field_name_of_field', 'value', 'DESC'); 
+0

Wow. Tham số thứ hai nghĩa đen là 'giá trị'. Đó là điều đáng ngạc nhiên khó tìm, và có vẻ như là trường hợp sử dụng phổ biến nhất. –

+0

@JonSurrell Về mặt kỹ thuật, tham số thứ hai là tên cột, trong hầu hết các trường hợp, giá trị mặc định là – Kiee

20

Bạn có thể tìm kiếm propertyOrderBy

$query = new EntityFieldQuery(); 
$query->propertyOrderBy('changed', 'DESC'); 
+2

sử dụng '-> dải ô (0,15);' để giới hạn đến 15 nút. – timofey

0

để lấy bài viết mới nhất có thể sử dụng

$query = new EntityFieldQuery(); 
$entities = $query->entityCondition('entity_type', 'node') 
        ->entityCondition('bundle', 'your_content_type') 
        ->propertyCondition('status', 1) 
        ->propertyOrderBy('created', 'DESC'); 
Các vấn đề liên quan