2011-10-26 5 views
0

私は、get_users関数を使用して、サイト上のユーザーのカスタムリストを表示します。唯一の問題は、今問題を理解することは、結果を改ページする方法です。get_users関数を改ページする方法は?

これはイムが使用していることを、関数のサンプルです:

<ul> 
    <?php 

    $args = array(
     'meta_key' => 'jabber', 
     'meta_value' => 'User Name', 
     'meta_compare' => 'LIKE', 
     'order' => 'ASC', 
     'count_total' => true, 
     'fields' => 'all', 
    ); 


    $blogusers = get_users($args_1); 
    foreach ($blogusers as $user) { 

     $user_id = $user->ID; 
     $user = get_userdata($user_id); 

      echo '<li class="provider-list prov-list-gradient">' . $user->display_name . '</li>'; 

    } 
    ?> 

    </ul> 

この機能のために改ページを作成する明白な方法はないようです。私はこれにいくつかの助けに感謝します。

UPDATE:

これはGET_USERS機能のソースコードです:

あなたが N結果の各ページをロードする前に、あなたが使用するように get_users()クエリを修正でき get_users()を実行している提供
function get_users($args = array()) { 

      $args = wp_parse_args($args); 
      $args['count_total'] = false; 

      $user_search = new WP_User_Query($args); 

      return (array) $user_search->get_results(); 
    } 

答えて

1

mysqlのキーワードOFFSETPがあなたのページ番号です)

Pseudoqueryの例は:

SELECT * FROM USERS LIMIT N OFFSET N*P 
+0

はMirthquakesありがとうございます。私は私のクエリにオフセットパラメータを追加しました。設定は8に設定されています。私が理解していることから、オフセットは結果の中の多くのユーザーをスキップします。私はPHPファイルにget_users関数をロードし、テンプレートページを使ってforeach結果をリストさせることにします。私は1ページあたり8つの結果が出るように、Nを8に設定しようとしています。 mysqlの例を使ってソリューションを実装するにはどうすればよいですか? – gdinari

+0

多くのことはあなた次第ですが、現在のページに対応する$ args配列に別のキー/値のペアが存在する可能性があります(例: 'currentPage' => '1')。次に、クエリがget_users内で生成されると、オフセット式を追加できます。 $ query = '... LIMIT' .N。 ' OFFSET '.N * currentPage – Mirthquakes

+0

OK、「返されるユーザーの総数を制限する」「数」パラメータがあります。たぶんこれは私があなたのソリューションで使うことができるものです...しかし、これが正しければ、* number *を無制限に設定する必要があります。 * number *と* offset *パラメータを組み込むことによって、おそらくあなたが提供している例を使ってページネーションを働かせることができます。あなたはどう思いますか? – gdinari

関連する問題