2012-10-24 19 views
14

Mattino, sto cercando di ottenere una serie di tipi di nodi più recenti ma non riesco a capire come ordinarli per data. Ecco la mia funzione finora: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'])); 
} 

qualsiasi aiuto sarebbe molto apprezzato!

risposta

19

Stai cercando la funzione membro fieldOrderBy(), ad es.

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

Wow. Il secondo parametro è letteralmente "valore". È stato sorprendentemente difficile da trovare e sembra il caso d'uso più comune. –

+0

@JonSurrell Tecnicamente il secondo parametro è il nome della colonna, che nella maggior parte dei casi assume il valore predefinito – Kiee

20

Si potrebbe essere alla ricerca di propertyOrderBy

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

usa '-> range (0,15);' per limitare a 15 nodi. – timofey

0

per recuperare l'ultimo post potete utilizzare

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