web-dev-qa-db-ja.com

Get_users関数をページ分割する方法

サイト上のユーザーのカスタムリストを表示するためにget_users関数を使用しています。今考え出している問題を抱えている唯一の問題は結果をどのようにページ付けするかです。

これはImが使っている関数のサンプルです:

Sample Code Screen shot

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

4
user1893

まずユーザーの総数を取得します。

$total_users = count_users();
//var_dump($total_users); //for debugging purpose
$total_users = $total_users['total_users'];

そして現在のページ:

$paged = get_query_var('paged');

1ページに表示するユーザー数を決める変数を設定します。

$number = 20; // ie. 20 users page page 

次に、$ args配列に、現在のページが!= 0の場合のオフセットと、返される最大ユーザー数を追加します。

'offset' => $paged ? ($paged - 1) * $number : 0,
'number' => $number,

上記のコードを追加して、ページリンクを作成します。

// display the user list here

if($total_users > $number){

  $pl_args = array(
     'base'     => add_query_arg('paged','%#%'),
     'format'   => '',
     'total'    => ceil($total_users / $number),
     'current'  => max(1, $paged),
  );

  // for ".../page/n"
  if($GLOBALS['wp_rewrite']->using_permalinks())
    $pl_args['base'] = user_trailingslashit(trailingslashit(get_pagenum_link(1)).'page/%#%/', 'paged');

  echo paginate_links($pl_args);
}

引数の全リストについては paginate_links() を参照してください。

8
onetrickpony