En el back-office de mi tema, los usuarios pueden elegir qué publicaciones mostrar en la página principal, y también pueden elegir en el orden en que deben aparecer las publicaciones seleccionadas .
Lo he intentado así:
$aPostsIDs = array(1,3,2); // Note the 3 should appear before the 2
query_posts(array('post_type' => 'page',
'post__in' => $aPostsIDs,
'order_by' => 'FIELD(ID, '.implode(',',$aPostsIDs).')'));
Pero como se esperaba, no funciona. La forma correcta de hacerlo de acuerdo con el códice es:
add_filter('posts_orderby', 'edit_posts_orderby');
function edit_posts_orderby($orderby_statement) {
global $aPostsIDs;
$orderby_statement = 'FIELD(ID, '.implode(',',$aPostsIDs).')';
return $orderby_statement;
}
¡Pero eso todavía no funciona! Los mensajes se ordenan por ID (1, 2, 3) en lugar de la orden dada (1, 3, 2).
¿Dónde debería mirar? Gracias