按wordpress中的自定义字段排序

时间:2013-06-25 23:42:26

标签: php mysql wordpress date

我的wordpress网站中有自定义字段(日期),其中包含类似june 16,2013的值。 我如何将此字段视为日期和排序? 有没有办法按custon_field日期对帖子进行排序?

我在我的php页面中尝试了这段代码,

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

它按排序顺序获取数据,但不是基于日期,该字段被视为字符串而非日期,我如何将其视为日期?

3 个答案:

答案 0 :(得分: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); 

答案 1 :(得分:0)

您可以设置要在数组中排序的所有日期,并使用strtotime()进行转换,然后只需使用sort()。 可能是一种更有效的方式。

答案 2 :(得分: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);