你可以使用usort()
. 回调函数需要确定姓氏并按其排序。
例如:
$args = array(
\'post_type\' = \'Employees\',
);
$employees = get_posts( $args );
usort( $employees, \'wp91501_sort_employees\' );
然后您的回调可能是:
function wp91501_sort_employees( $a, $b ) {
// split the names into arrays
$a_name = explode( \' \', $a->post_title );
$b_name = explode( \' \', $b->post_title );
// get the last name from the $x_name arrays
$a_last_name = end( $a_name );
$b_last_name = end( $b_name );
if( $a_last_name == $b_last_name ) {
return 0;
}
return ($a_last_name < $b_last_name ) ? -1 : 1 ;
}
请注意,这是一个非常简单的比较——如果员工有一个没有连字符的双姓(例如,“John Smythe Jones”),那么它将根据姓名的最后一部分进行排序(在示例中为“Jones”)。
一个更简单的选择可能是以“LastName,FirstName”的形式输入员工,这样您就可以按post_title ASC
. 但你需要过滤the_title
如果要将标题显示为“FirstName LastName”。