o un array di oggetti. Die Technik, die ich hier beschreiben ist nützlich in vielen Situationen, in denen zum Beispiel haben wir ein array von array oder array von Objekten. , senza aver accesso alla select originale (sul database) che ha generato l'elenco (array) stesso: In WordPress kann manchmal brauchen, um eine Liste der Beiträge, im Standard manipulieren array von stdClass Object , ohne Zugriff auf das Original wählen (in der Datenbank), die die Liste (Array) selbst erzeugt:
1 2 3 4 5 6 7 | Array ( [0] => stdClass Object ( [ID] => 104 [Post_author] => 37 ... |
. Allerdings können Sie bestellen ein solches array zu einem späteren Zeitpunkt, ohne den Umweg über die Datenbank, mit der PHP-Funktion usort() . Dies ermöglicht Ihnen, eine Art mit Hilfe einer Funktion durchführen callback Personal. o un altro stdClass Object : Zum Beispiel vorstellen, dass Sie in unserem Beitrag bestellen möchten post_author oder aus einem anderen Feld, das wiederum eine sein kann, array oder ein anderes stdClass Object :
1 2 3 4 5 6 7 8 9 10 | / ** * $ Beiträge Array von Objekten ist unser "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, / / absteigend / / Return ($ a-> post_author <$ b-> post_author)? -1: 1, / / Erhöhung } |
Spielen auf mehr ">" und weniger "<" ist die letzte Anweisung in aufsteigender oder absteigender Reihenfolge können bestellt werden.
Diese Situationen können sehr häufig in advanced Kontexten, in denen z. B. eine Reihe von Listen zu scannenden haben. Ein weiteres Beispiel ist in dem Fall von Kombinationen, bei denen mehrere Listen der Beiträge, die Grenze von verschiedenen Blogs erholt, bestellt werden müssen.
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); / ** * $ Posts ist ein Array von Listen, Listen abgerufen Beitrag wer weiß * Wo und wer weiß, wie ... * / $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; } |










hallo,
Ich Ihren Artikel gelesen und in der Nähe zu dem, was ich tun soll.
Ich habe, um die Beiträge auf den Wert der verschiedenen benutzerdefiniertes Feld zu sortieren;
zum Beispiel sortieren nach:
- Preis
- Name
- Platz
was ist der beste Weg, um fortzufahren?
Dank
@ Elia :: der beste Weg ist, um die Nutzung
meta_query, mit Version 3.1 von WordPress eingeführt. Finden Sie Beispiele und Dokumentation hier . Zum Beispiel können Sie abrufen, alle Beiträge, die eine meta_key Preis gleich 100 haben:2
3
get_posts ( $args ) ; $ = Beiträge get_posts ($ args);
...
[...] PHP-Funktion usort ()-Sicht zu WordPress: Bestellen Sie eine Reihe von Beiträgen für jedes Feld kann leicht verwendet werden, um auch ein Array von Arrays bestellen. Zum Beispiel, wenn man [...]
Es tut mir leid, wenn meine Frage ist unverständlich Sie, es tut mir leid, aber ich weiß nicht, die genaue tarminologia, um mich besser zu verstehen.
Ich betreibe ein Blog von einem Freund erstellt, die nun noch mehr in der Lage, ihm zu folgen.
Wir haben eine Tabelle, die als Index für die verschiedenen Links wirkt erstellt. Ich erstelle Seiten "deck" und Links zu diesen werden automatisch in die Tabelle eingefügt. Im Moment habe ich nicht die Möglichkeit, diese Links in beliebiger Weise zu sortieren!
Sie werden in absteigender Reihenfolge der Einfügung angezeigt.
Es besteht die Möglichkeit der Einführung eines Code, so dass es, von Zeit zu Zeit, zu entscheiden, wo die Links zu den Seiten, die ich innerhalb der Matrix bearbeitet setzen?
Und Beispiel: "alphabetisch" oder "Typ" oder "wichtig"?
ich danke Ihnen sehr für Ihre Verfügbarkeit!
Lorenzo
@ Lorenzo_l: In Teil, ich denke, ich weiß, und es ist natürlich möglich. Zuerst aufzuspüren, wo das Programm genug SELECT SQL wäre, dass es extrahiert die Daten und fügen Sie Ihre eigenen Sorte. Sie müssten letztlich zu einem technischen Eingriff, der in wenigen Minuten gelöst werden sollte.
Wenn Sie versuchen, natürlich mit den wenigen Indikationen ich haben wollen, können Sie versuchen, die Sortierung nach mir hinzuzufügen.
Die SELECT-Anweisung sollte wie folgt aussehen:
Nun weiß ich nicht, die Namen der Felder, aber es ist genug, dass man am Ende ein:
o non so. Wo ist
campoName der Tabelle Feldnomeoder nicht wissen.Hart auf Vollständigkeit hier ...