对查询中的日期结果进行排序

时间:2012-05-23 作者:pelle

我有一个自己经营的网站,展示一些朋友的婚礼和周年纪念日。

我运行此命令是为了根据月份向用户显示(及其周年纪念):

 $args = array(     
\'meta_key\' => \'anniversary_date\',   
\'meta_value\' => 0, 
);  


 $user_query = new WP_User_Query( $args ); 
 $users = $user_query->get_results();  

 foreach( $users as $user ):    
echo $user->display_name;  
 echo \' will be celebrating their anniversary on \';     
echo get_user_meta( $user->ID, \'anniversary_date\', true );   
 endforeach; 
<小时>
function anniversary_user_query( $query ){  

 if( $query->query_vars[\'meta_key\'] == \'anniversary_date\' && $query->query_vars[\'meta_value\'] === 0 ):    
     global $wpdb;        
     $thismonth = date(\'m\');      
     $query->query_where = "WHERE 1=1 AND ( $wpdb->usermeta.meta_key = \'anniversary_date\' AND ( MONTH( $wpdb->usermeta.meta_value ) = $thismonth ) )";    
endif;   
return $query;
 } 
add_action( \'pre_user_query\', \'anniversary_user_query\' ); 
我的数据库中的日期结构类似于YYYY-MM-DD。

如何对页面上显示的日期进行排序,以便从月初(按天)到最晚排序?

谢谢

1 个回复
SO网友:Milo

修改query_orderby 条款以月日为准。将此添加到anniversary_user_query 功能:

$query->query_orderby = "ORDER BY DAY( $wpdb->usermeta.meta_value ) ASC";

结束

相关推荐

使用WP_QUERY使用时间戳的元查询

我正在为当地的一个滚轴德比联赛开发一个事件系统,但它有一个问题。我制作了一个自定义的帖子类型(“event”),用户可以在其中添加一些不同类型的事件(分类法:“event type”,术语:“about”,“*fresh\\u meat\\u day*”和“*public\\u event*”)。用户还可以输入标题、描述、位置和日期,我使用自定义字段(而不是正常的发布日期)。我在指定的事件页面(events.php)上显示这些事件,并希望在登录页上显示每个类别的第一个即将到来的事件。我对事件页面没有问题。