Заказывать сообщения по ID в указанном порядке

В бэк-офисе моей темы пользователи могут выбирать, какие сообщения должны отображаться на первой странице, и они также могут выбирать, в каком порядке должны отображаться выбранные сообщения .

Я пробовал вот так:

$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).')')); 

Но, как и ожидалось, это не сработает. Правильный способ сделать это в соответствии с кодом :

 add_filter('posts_orderby', 'edit_posts_orderby'); function edit_posts_orderby($orderby_statement) { global $aPostsIDs; $orderby_statement = 'FIELD(ID, '.implode(',',$aPostsIDs).')'; return $orderby_statement; } 

Но это все еще не работает! Посты упорядочены по идентификатору (1, 2, 3) вместо заданного порядка (1, 3, 2).

Где я должен смотреть? благодаря

Начиная с WordPress 3.5, параметр post__in позволяет сортировать значение post__in по порядку параметра post__in , как и в вашем примере.

Возможно, не идеально подождать или потребовать 3.5+, но это почти наверняка будет лучшим и простым способом сделать то, что вы хотите сделать.

Вот вам соответствующий трэк-билет, если вы хотите получить подробную информацию.