Wordpress: Pour une série de postes pour tout champ

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;?
}

3 commentaires à "Wordpress: Pour une série de postes pour tout le terrain»

  1. 28 mars 2011 Elia :

    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

  2. 3 novembre 2011 Giovambattista Fazioli :

    @ 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:

    1
    2
    3
    array ( 'meta_key' => 'prezzo' , 'meta_value' => '100' ) ; $ Args = array ('meta_key' => 'Prix', 'meta_value' => '100 ');
    get_posts ( $args ) ; Messages $ = get_posts ($ args);
    ...
  3. 3 novembre 2011 Commander un tableau de tableaux en PHP - Undolog.com - Undolog.com :

    [...] 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: [...]

Laisser un commentaire

XHTML TAG PERMIS: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> CODE D'INSERTION:
 <pre></pre> // blocco generico <code></code> // blocco generico [cc_actionscript][/cc_actionscript] // Actionscript [cc_actionscript3][/cc_actionscript3] // Actionscript 3 [cc_css][/cc_css] // CSS Style Sheet [cc_html][/cc_html] // HTML [cc_js][/cc_js] // Javascript [cc_objc][/cc_objc] // Objective-C [cc_php][/cc_objc] // PHP [cc_sql][/cc_sql] // SQL