2013-06-25 2 views
0

У меня есть пользовательское поле (дата) на моем сайте Wordpress, которое содержит значение, подобное этому june 16,2013. Как я могу обработать это поле как дату и сортировку ?. Есть ли способ отсортировать сообщения по дате custon_field?заказать по специальному полю в wordpress

Я пытался в моей странице PHP с этим кодом,

$args = array(
'orderby' => 'meta_value', 
'order' => 'ASC', 
'meta_key' =>'release_date' 
); 
query_posts($args); 

это получение данных в порядке сортировки, но не на основе даты, поле рассматривается как строка не дату, как можно лечить это как дата ?

ответ

3

Попробуйте

$args = array(
'orderby' => "DATE_FORMAT(STR_TO_DATE(meta_value, '%M %d,%Y'), '%Y-%m-%d')", 
'order' => 'ASC', 
'meta_key' =>'release_date' 
); 
query_posts($args); 
+0

@Nisam. Если этот ответ помог вам в решении вашей проблемы, вы можете проголосовать за ответ в качестве благодарности –

0

Вы можете установить все даты, которые хотите отсортировать в массиве, и преобразовать их с помощью strtotime(), а затем просто используйте sort(). Там может быть более эффективным способом.

+0

как я могу переписать запрос для этого? – Nisam

+0

Какой запрос? Вы не указали код, а также отметили его как php –

0

Попробуйте это:

$date = get_post_meta($post->ID, 'link_banner', true); 
$date_convert = strtotime($date); 
$args = array(
'orderby' => 'meta_value', 
'order' => 'ASC', 
'meta_key' =>$date_convert 
); 
query_posts($args);