Сортировка сообщений по настраиваемому полю - числа и строка
Так что у меня есть настраиваемое поле, которое дает вывод в виде простого текста в этом формате: дд. 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;
}
Надеюсь, поможет