o un array di oggetti. La technique que je décris ici est utile dans de nombreuses situations où, par exemple, nous avons un array de array ou de array d'objets. , senza aver accesso alla select originale (sul database) che ha generato l'elenco (array) stesso: Dans WordPress, vous pouvez manipuler une liste de postes, dans le format standard array du stdClass Object sans avoir accès à choisir l'original (la base) qui a généré la liste (array) lui-même:
1 2 3 4 5 6 7 | Tableau ( [0] => stdClass Object ( [ID] => 104 [Post_author] => 37 ... |
. Vous pouvez, toutefois, exiger un tel array à une date ultérieure, sans passer par la base de données, en utilisant la fonction php usort() . Cela vous permet de rendre une ordonnance par le biais d'une fonction callback du personnel. o un altro stdClass Object : Par exemple, supposons que vous souhaitez commander notre poste pour post_author ou tout autre domaine qui, à son tour, peut être une array ou une autre stdClass Object :
1 2 3 4 5 6 7 8 9 10 | / ** * Est-ce de notre tableau $ messages d'objets stdClass Object "post" * / $posts , "__sort" ) ; usort ($ messages, "__sort"); $a , $b ) { Fonction __sort ($ a, $ b) { $a -> post_author == $b -> post_author ) return 0 ; if ($ a -> b == $ post_author -> post_author) return 0; $a -> post_author > $b -> post_author ) ? - 1 : 1 ; // decrescente return ($ a -> post_author> $ b -> post_author) - 1: 1, / / décroissant / / Retour ($ a-> post_author <$ b-> post_author)? -1: 1, / / ascendant } |
Jouant sur plusieurs ">" et moins "<" dernière déclaration, vous pouvez trier par ordre décroissant ou croissant.
Ces situations peuvent être très fréquentes dans les contextes de pointe où, par exemple, il ya un certain nombre de répertoires à scanner. Un autre exemple est dans le cas des agrégats, où plusieurs listes de diffusion, d'autres blogs récupéré à la limite, doivent être commandés.
1 2 3 4 5 6 7 8 9 10 11 | $posts , $lista_1 , $lista_2 , $lista_3 , ..., $lista_n ) ; array_push ($ messages, lista_1 $, lista_2 $, lista_3 $, ..., lista_n $); / ** * $ Array messages est un tableau de listes, des listes d'récupérés après qui sait * Où et qui sait ... * / $posts , "__sort" ) ; usort ($ messages, "__sort"); $a , $b ) { Fonction __sort ($ a, $ b) { $a -> ID == $b -> ID ) return 0 ; if ($ a -> ID == $ b -> ID) return 0; $a -> ID < $b -> ID ) ? - 1 : 1 ; return ($ a -> ID <$ b -> ID) - 1: 1;? } |










bonjour,
J'ai lu votre article et est proche de ce que je dois faire.
J'ai pour trier les messages basés sur la valeur du champ personnalisé différent;
pour le tri par exemple:
- Prix
- Nom
- Situation
quelle est la meilleure voie à suivre?
Merci
@ Elie: La meilleure façon est d'utiliser
meta_query, introduites avec la version 3.1 de WordPress. Trouvez des exemples et documentation ici . Par exemple, vous pouvez récupérer tous les messages qui ont un prix égal à 100 meta_key:2
3
get_posts ( $args ) ; Messages $ = get_posts ($ args);
...
[...] PHP usort () vu dans WordPress: l'ordre d'une série de messages pour tout terrain peut facilement être utilisée pour trier des tableaux de tableaux. Par exemple, si nous avons: [...]