WordPress: commander une série de messages pour un domaine

o un array di oggetti. La technique que je décris ici est utile dans de nombreuses situations où, par exemple, nous avons une array de array ou un array d'objets. , senza aver accesso alla select originale (sul database) che ha generato l'elenco (array) stesso: Dans WordPress peut parfois avoir besoin de manipuler une liste de messages, dans la norme array de stdClass Object sans avoir accès à la sélection originale (sur la base de données) qui a généré la liste (array) lui-même:

1
2
3
4
5
6
7
Matrice
(
[0] => stdClass Object
(
[ID] => 104
[Post_author] => 37
...

. Cependant, vous pouvez commander un tel array à une date ultérieure, sans passer par la base de données, en utilisant la fonction php usort() . Cela vous permet d'effectuer un tri en utilisant une fonction callback personnel. o un altro stdClass Object : Par exemple, imaginez que vous voulez commander notre poste post_author ou pour tout autre domaine qui, à son tour, peut être un array ou d'une autre stdClass Object :

1
2
3
4
5
6
7
8
9
10
/ **
* $ Messages tableau d'objets est notre "post" stdClass Object
* /
$posts , "__sort" ) ; usort ($ posts, "__sort");

$a , $b ) { function __ sort ($ a, $ b) {
$a -> post_author == $b -> post_author ) return 0 ; if ($ a -> post_author == $ b -> post_author) return 0;
$a -> post_author > $b -> post_author ) ? - 1 : 1 ; // decrescente return ($ a -> post_author> $ b -> post_author) - 1: 1, / / décroissant
/ / Return ($ a-> post_author <$ b-> post_author)? -1: 1, / / augmentant
}

Jouant sur plusieurs ">" et moins "<" est la dernière déclaration peut être commandé en ordre croissant ou décroissant.

Ces situations peuvent être très fréquentes dans des contextes avancés où, par exemple, aura une série de listes à numériser. Un autre exemple est le cas de regroupements, où plusieurs listes de messages, la limite récupéré de blogs différents, doit être ordonné.

1
2
3
4
5
6
7
8
9
10
11
$posts , $lista_1 , $lista_2 , $lista_3 , ..., $lista_n ) ; array_push ($ posts, lista_1 $, lista_2 $, lista_3 $, ..., lista_n $);
/ **
* $ Messages est un tableau de listes, des listes de courrier récupéré qui sait
* Où et qui sait ...
* /
$posts , "__sort" ) ; usort ($ posts, "__sort");

$a , $b ) { function __ 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;
}

5 commentaires à " "

  1. 28 mars 2011 elia :

    bonjour,
    J'ai lu votre article et est proche de ce que je dois faire.
    Je dois trier les messages en fonction de la valeur du champ personnalisé différent;
    par exemple trier par:
    - Prix
    - Nom
    - Lieu
    quelle est la meilleure façon de procéder?
    remerciements

  2. 3 novembre 2011 Giovan Battista Fazioli :

    @ Elia :: le meilleur moyen est d'utiliser le meta_query , introduite 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 meta_key égal à 100:

    1
    2
    3
    array ( 'meta_key' => 'prezzo' , 'meta_value' => '100' ) ; $ Args = tableau («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 :

    [...] Fonction PHP usort () afin de WordPress: Commander une série de messages pour un domaine peuvent être facilement utilisés également pour commander un tableau de tableaux. Par exemple, si nous [...]

  4. 6 juin 2012 Lorenzo_l :

    Je suis désolé si ma question est incompréhensible pour vous, je suis désolé mais je ne connais pas la tarminologia exact pour me faire mieux comprendre.

    Je lance un blog créé par un ami, qui maintenant ne peut plus le suivre.
    Nous avons créé un tableau qui agit comme un indice pour les différents liens. Je crée des pages "pont" et des liens vers ceux-ci sont automatiquement insérés dans le tableau. Pour l'instant, je n'ai pas la possibilité de trier ces liens de façon arbitraire!
    Elles sont affichées dans l'ordre décroissant de l'insertion.

    Il ya la possibilité de mettre en place un code de sorte qu'il peut, de temps à autre, décider où mettre les liens vers les pages que j'ai édité dans la Matrice?
    Et par exemple: "alphabétique" ou "type" ou "importance"?

    merci beaucoup pour votre disponibilité!
    Lorenzo

  5. 7 juin 2012 Giovan Battista Fazioli :

    @ Lorenzo_l: En partie, je pense que je sais, et il est bien sûr possible. D'abord, vous traquer où le programme serait assez SQL SELECT qui extrait les données là-bas et ajouter votre propre sort. Vous aurez besoin, en fin de compte, à une intervention technique qui devrait être résolu en quelques minutes.
    Si vous voulez essayer, bien sûr, avec les quelques indications que j'ai, vous pouvez essayer d'ajouter un tri par moi-même.
    L'instruction SELECT devrait ressembler à:

    1
    FROM .... SELECT * FROM ....

    Maintenant, je ne connais pas les noms des champs, mais il suffit que vous entrez à la fin:

    1
    FROM ... ORDER BY campo SELECT * FROM ... ORDER BY champ

    o non so. Où est campo Nom du champ de la table, tapez nome ou ne savent pas.
    Difficile d'être exhaustif ici ... :)

Laisser un commentaire

TAG XHTML Permis: Entrée du code:
 <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