web-dev-qa-db-fra.com

Liste des auteurs Pagination?

WordPress a une fonction intégrée pour afficher une liste de tous les auteurs de votre site. Mais il n’existe aucune option permettant d’afficher leurs avatars. Tout ce que vous obtenez est donc une liste de textes qui renvoie à la page de l’auteur, si vous avez un fichier author.php dans votre thème.

ainsi, en tournant Internet, j’ai trouvé ce joli tutoriel bavotasan.com avec un petit morceau de code qui semble bien faire l'affaire.

Sur mon site, tous les utilisateurs peuvent écrire des articles et la liste des contributeurs est longue. Il est possible de définir 10 utilisateurs pour la page?

En utilisant cette solution: paginez le résultat depuis $ wpdb-> get_results ()

J'ai créé mon code pour les fonctions de liste d'auteurs comme suit:

    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>";
}
}

mais fait toujours le tour ..... S'il vous plaît aidez-moi à trouver l'erreur et sa rectification. Merci beaucoup.

1
Fask

J'ai modifié WP_LIST_AUTHORS pour paginer. Je ne sais pas si c'est très sexy, et semble nécessiter une sorte de plugin Caching, sinon cette page en particulier peut commencer à se charger assez lentement.

Le code complet de ma fonction paginée est dans ce fil de discussion: Modification de WP_LIST_AUTHOR Fonctions permettant d'afficher tous les utilisateurs dans une grille (et paginée)

Si vous voulez juste regarder directement le code de pagination que j'ai utilisé, vous pouvez aller ici: http://www.phpfreaks.com/tutorial/basic-pagination

0
Sam K

Dans votre cas, vous pouvez gagner du temps en utilisant votre plugin pour la liste des membres

qui vous permet de créer un post sur votre blog wordpress qui répertorie tous vos membres wordpress. Lorsque vous consultez la liste des membres, vous pouvez également effectuer une recherche parmi vos membres en fonction du prénom, du nom, de l'adresse de messagerie, de l'adresse URL ou de tout autre nombre de champs de méta que vous pouvez spécifier. En utilisant la pagination, vous pouvez parcourir vos résultats de recherche et trier vos résultats par nom de famille, prénom, date d’enregistrement ou adresse électronique.

1
Bainternet

si j'ajoute ce code comme je le rappelle dans la boucle?

// 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