Сортировка сообщений по настраиваемому полю - числа и строка

Так что у меня есть настраиваемое поле, которое дает вывод в виде простого текста в этом формате: дд. MM yy (09 октября 2013 г.) Это цикл, который я использую:

query_posts(array('category_name'=>'somecategory', 'posts_per_page'=>'5','paged' => get_query_var('paged')));
while (have_posts()) : the_post();

//stuff
the_field('mydate'); //the output is: dd. MM yy
//stuff

endwhile;
wp_reset_query();
//paginate_links code...

Если я добавлю это в query_posts:

'meta_key' => 'mydate', 'orderby'=>'mydate'

Мои сообщения сортируются только по дням и годам, кажется, что он не может прочитать месяц, потому что это строка. И такая сортировка бесполезна. Если бы сайт был моим, я бы изменил формат даты, и это было бы решено, но я делаю этот сайт для кого-то, и дизайнер уже рисует этот формат даты в фотошопе, поэтому так и должно быть. Так, как я могу заставить этот вид работать должным образом?

1 ответ

Добавьте приведенный ниже код перед запросом:

add_filter('posts_where', 'filter_orderby');
 function filter_orderby( $where = '' ) {
    $where .= "  AND $wpdb->postmeta.meta_key = 'mydate' ORDER BY mydate DESC";
    return where;
}

Надеюсь, поможет

Другие вопросы по тегам