Question

WordPress a une fonction intégrée pour afficher une liste de tous les auteurs de votre site. Mais il n'y a pas possibilité d'afficher leurs avatars, donc tout ce que vous obtenez est vraiment une liste de texte que les liens vers la page de l'auteur, si vous avez un fichier author.php dans votre thème, qui est.

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

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

En utilisant cette solution: jeu de résultats Paginate de $ wpdb-> get_results ()

J'ai fait mon code pour les fonctions de la liste des 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 ne fonctionne toujours le truc ..... S'il vous plaît aidez-moi à trouver l'erreur et la rectification. Merci beaucoup.

Était-ce utile?

La solution

J'ai modifié WP_LIST_AUTHORS paginer. Je ne sais pas si son très sexy, et semble nécessiter une sorte de plug-in Caching autrement cette page particulière peut commencer à charger assez lentement.

Le code complet de ma fonction est paginé dans ce fil: Modification WP_LIST_AUTHOR Fonctions de sortie tous les utilisateurs dans une grille (et paginate)

Si vous voulez juste regarder directement le code je vous en page pouvez aller ici: http : //www.phpfreaks.com/tutorial/basic-pagination

Autres conseils

Dans votre cas, vous pouvez enregistrer votre temps le problème en utilisant Membres Plugin

qui vous permet de créer un post sur votre blog wordpress qui répertorie tous membres wordpress. Lorsque vous affichez la liste des membres vous pouvez également rechercher par vos membres selon Prénom Nom Adresse e-mail, URL ou tout autre nombre d'utilisateurs méta les champs que vous pouvez spécifier. Employant vous pouvez la page en page par votre résultats de la recherche et de trier vos résultats selon nom, prénom, date d'enregistrement ou par courriel.

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);
Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top