Kullanıcıları eklenme tarihine göre değilde kendi belirlediğiniz sıraya göre çekme gereksinimi duyabilirsiniz. Bunun için ilk önce bir tane her kullanıcılar sayfasına özel alan (custom field) oluşturuyoruz.
Bu durum hemen hemen yazılarda ki gibi aynı gözükse de biraz can sıkabiliyor. get_posts() argümanındaki gibi meta_key kullanıyormuş gibi yapacağız ama aslında kullanmayacağız 🙂
Kullanıcılar sayfasına eklediğimiz özel alanımızı aşağıdaki alana (custom_field_sort) ‘la değiştirdik mi istediğimiz sonuca ulaşabileceksiniz.
<?php /* Sorgu argümanlarımız */ $args = array( 'fields' => 'all_with_meta', 'meta_query' => array( array( 'key' => 'custom_field_sort', // Kullanıcılar sayfasına eklediğimiz özel alan adı. ) )); //get_users ile sorgumuzu çalıştırıp $users değişkenine atıyoruz. $users = get_users( $args ); /* * Can alıcı fonksiyon, özel alanlara göre sıralama yapan * mucizevi velet. Bu yazımızın ana kahramanı! */ function cmp($a, $b){ if ($a->custom_field_sort == $b->custom_field_sort) { return 0; } return ($a->custom_field_sort < $b->custom_field_sort) ? -1 : 1; } /* * usort fonksiyonu ile $users dizi elamanlarını (Çektiğimiz * kullanıcıları) cmp fonksiyonumuzla filtreleyip küçükten * büyüğe sıralıyoruz. * */ usort($users, 'cmp'); /* * Oluşturduğumuz özel alana göre kullanıcı listemiz * istediğimiz sonucu verecektir. */ foreach ($users as $user) { // ... }
Kaynak: http://clarklab.com/posts/sort-wordpress-users-by-custom-meta-value-with-get_users/
Bir yanıt yazın