Ich habe ein Array von IDs und möchte diese Beiträge von WP_Quey() erhalten
$myarray = $ids;
$args = array( 'post__in' => $myarray);
// The Query
$the_query = new WP_Query( $args );
Es ist, Ergebnis nach Datum sortieren. Aber ich möchte es nach $myarray-Elementen sortieren, und das erste Ergebnis wäre die erste ID in $myarray
In WordPress 3.5 und höher können Sie verwenden 'orderby'=>'post__in'
dann musst du das schreiben:
$myarray = $ids;
$args = array('post__in'=> $myarray, 'orderby'=>'post__in');
// The Query
$the_query = new WP_Query( $args );
Ich weiß, dass meine Antwort zu spät kommt, aber ich muss richtig antworten.
Wie ich es versuchte 'orderby'=>'post__in'
:
Zum Beispiel habe ich dynamisch aktualisierte Cookies, und ich muss Produkte in den Block der zuletzt angesehenen Produkte laden, damit das erste Produkt in diesem Block zuletzt angesehen werden muss.
OK.
Ich hatte Ausweise 1720, 19626, 19173, 19188.
$args = array('post__in'=> $myarray, 'orderby'=>'post__in');
Diese Zeichenfolge in der Ausgabe gab meine Produkte der Reihe nach zurück:
19626, 19188, 19173, 1720 und es ist nicht meine bestellung. Diese Ursache einfach Parameter bestellen BESCHR standardmäßig WP_Query
. Und wir haben nur eine Chance füreinander – ASC
it…sehr traurige Antwort von M H.
Meine Antwort ist einfach clever:
BRAUCHEN wir NICHT ‘orderby’=>’post__in’
wir müssen bekommen:
$myarray = $ids;
$args = array('post__in'=> $myarray);
$the_query = new WP_Query( $args );
Danach machen wir:
foreach($myarray as $myarray_id){
while ( $the_query->have_posts()) {
$the_query->the_post();
if($post->ID == $myarray_id){
//DO SOMETHING
}
}
}
Das ist es!
Ordnungsgemäße Übermittlung der Bestellung:
$id_array = array(5,2,3,7);
foreach($id_array as $id_array_v)
{
$query = new WP_Query(array('post__in' => array($id_array_v)));
while($query -> have_posts())
{
$query -> the_post();
the_title();
}
}
Deine Frage ist nicht ganz klar. Aber wenn Sie Posts nach ID in Ihrem Array sortieren möchten, können Sie orderby=>’ID’ verwenden. Hier ist das args-Array. $args = array( ‘post__in’ => $myarray, ‘orderby’=>ID, ‘order’=>’ASC’);
– Pranita
7. März 2014 um 6:00 Uhr