web-dev-qa-db-fra.com

Comment trier (ordonner) les résultats de `get_children ()`?

J'ai un article qui contient des images, disons avec les identifiants 19, 12, 10. Je joins l'image 19 en premier, 12 en dessous du premier et 10 en dernier, et j'ai besoin de les récupérer. je

$post_images = get_children( array(
    'post_parent' => $id,
    'post_status' => 'inherit',
    'post_type' => 'attachment',
    'post_mime_type' => 'image',
));

Mais je les reçois triés par identifiant (10,12,19), comment je les reçois avec l'ordre dont j'avais besoin

_ { La documentation pour get_children n'est pas géniale (au moment de cette réponse), cependant get_children est simplement un wrapper pour get_posts() . Cela signifie que orderby et order sont des arguments valides pour votre requête.

Lorsque vous demandez " Comment puis-je les obtenir avec la commande dont j'avais besoin ", la propriété que vous souhaitez commander est-elle associée à un valide orderby valeur ? Si tel est le cas, votre appel de fonction pourrait ressembler à ceci:

$post_images = get_children( array(
    'post_parent' => $id,
    'post_status' => 'inherit',
    'post_type' => 'attachment',
    'post_mime_type' => 'image',
    'orderby' => 'title'
    'order' => 'ASC',
));
1
Jared Cobb

Si j'ai bien compris, vous souhaitez obtenir la pièce jointe dans le même ordre que celui que vous avez chargé. Vous pouvez les trier par date, dans ce cas:

$args = array(
    'orderby'          => 'date',
    'order'            => 'ASC',
    'post_type'        => 'attachment',
    'post_mime_type'   => 'image',
    'post_parent'      => $id,
    'post_status'      => 'inherit',
);
$posts = get_posts( $args ); 

Cela permettra de trier vos pièces jointes par date, ce qui correspond probablement à ce que vous recherchez.

1
Jack Johansson