2012-10-24 12 views
14

Rano, próbuję uzyskać zestaw najnowszych typów węzłów, ale nie mogę wydawać się, jak je zamówić według daty. Oto moja dotychczasowa funkcja: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'])); 
} 

każda pomoc będzie bardzo ceniona!

Odpowiedz

19

Poszukujesz funkcji składowej fieldOrderBy(), np.

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

Wow. Drugi parametr jest dosłownie "wartością". To było zaskakująco trudne do znalezienia i wydaje się być najczęstszym przypadkiem użycia. –

+0

@JonSurrell Technicznie drugim parametrem jest nazwa kolumny, która w większości przypadków domyślnie przyjmuje wartość – Kiee

20

może być szukasz propertyOrderBy

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

, używając zakresu "-> (0,15);", aby ograniczyć do 15 węzłów. – timofey

0

aby pobrać najnowszy post można użyć

$query = new EntityFieldQuery(); 
$entities = $query->entityCondition('entity_type', 'node') 
        ->entityCondition('bundle', 'your_content_type') 
        ->propertyCondition('status', 1) 
        ->propertyOrderBy('created', 'DESC'); 
Powiązane problemy