web-dev-qa-db-ja.com

著者はページ付けをリストアップしますか?

WordPressにはあなたのサイトの作者全員のリストを表示する機能が組み込まれています。しかし、アバターを表示するオプションはありません。そのため、テーマにauthor.phpファイルがある場合は、作成者のページにリンクしているテキストリストだけが表示されます。

このようにインターネットをめくる私はこの素晴らしいチュートリアル bavotasan.com で、うまくいくように思われる小さなコードを見つけました。

私のサイトではすべてのユーザーが記事を書くことができ、貢献者リストは長いです。ページに10人のユーザーを設定することはできますか?

このソリューションを使用する: $ wpdb-> get_results()から結果セットをページ付けする

私は以下のように著者リスト関数のための私のコードを作りました:

    function contributors() {
global $wpdb;

$authors = $wpdb->get_results("SELECT ID, user_nicename from $wpdb->users WHERE display_name <> 'admin' ORDER BY display_name");

$authors_per_page = 10;
$page = isset( $_GET['cpage'] ) ? abs( (int) $_GET['cpage'] ) : 1;

echo paginate_links( array(
    'base' => add_query_arg( 'cpage', '%#%' ),
    'format' => '',
    'prev_text' => __('«'),
    'next_text' => __('»'),
    'total' => ceil($total / $authors_per_page),
    'current' => $page
));

foreach ($authors as $author ) {

echo "<li>";
echo "<a href=\"".get_bloginfo('url')."/author/";
the_author_meta('user_nicename', $author->ID);
echo "/\">";
echo get_avatar($author->ID);
echo "</a>";
echo '<div>';
echo "<a href=\"".get_bloginfo('url')."/author/";
the_author_meta('user_nicename', $author->ID);
echo "/\">";
the_author_meta('display_name', $author->ID);
echo "</a>";
echo "<br />";
echo "SitoWeb: <a href=\"";
the_author_meta('user_url', $author->ID);
echo "/\" target='_blank'>";
the_author_meta('user_url', $author->ID);
echo "</a>";
echo "<br />";
echo "Twitter: <a href=\"http://Twitter.com/";
the_author_meta('Twitter', $author->ID);
echo "\" target='_blank'>";
the_author_meta('Twitter', $author->ID);
echo "</a>";
echo "<br />";
echo "<a href=\"".get_bloginfo('url')."/author/";
the_author_meta('user_nicename', $author->ID);
echo "/\">Visita il Profilo di ";
the_author_meta('display_name', $author->ID);
echo "</a>";
echo "</div>";
echo "</li>";
}
}

それでもまだトリックをしています.....エラーとその修正を見つけるために私を助けてください。どうもありがとう。

1
Fask

WP_LIST_AUTHORSをページ番号付きに変更しました。私はそれがとてもセクシーであるかどうかわからないし、そうでなければある種のCachingプラグインを必要とするように思われます、そうでなければこの特定のページはかなりゆっくりとロードし始めることができます。

私のページ付けされた関数の完全なコードは、このスレッドにあります。 グリッド内のすべてのユーザーを出力するためのWP_LIST_AUTHOR関数の変更(およびPaginate)

私が使ったページ区切りコードを直接見たいだけなら、ここに行くことができます。 http://www.phpfreaks.com/tutorial/basic-pagination

0
Sam K

あなたのケースでは メンバーリストプラグイン を使うことであなたの時間を節約することができます。

これはあなたがあなたのすべてのあなたのwordpressのメンバーをリストするあなたのwordpressのブログに投稿を作成することを可能にします。メンバーのリストを表示するときは、姓、名、電子メールアドレス、URL、または指定したその他の数のユーザーメタフィールドに従ってメンバーを検索することもできます。ページ区切りを使用すると、検索結果をページングして、姓、名、登録日、または電子メールに従って結果を並べ替えることができます。

1
Bainternet

このコードをループ内で思い出しながら追加するとどうなりますか。

// Get the current page
$paged = get_query_var('paged');
if (!$paged) $paged = 1;

// We'll return these at a later stage
$current_page = $paged;
$total_pages = ceil(count($authors) / 10);

// Calculate the starting and ending points
// Assuming we'll be showing 10 authors per page
$start = ($paged - 1) * 10;
$end = $paged * 10;
if ($end > count($authors)) $end = count($authors);
0
Fask