Ciao ragazzi spero che il titolo non sia troppo generico .... in ogni caso espongo il problema. Sto lavorando con cms wordpress e sto incontrando problemi con l'impaginazione di una pagina di template personalizzata.

Il progetto inizia volendo creare una lista di tutti gli utenti iscritti del blog. Il contenuto della medesima conterrà l'avatar utente il nome e un link che punta alla pagina del suo profilo, o meglio alla pagina autore (auhtor.php).

Girovango nei meandri del web con tanta pazienza e molta volontà inizio a partorire l'idea aprendo il file functions.php del mio tema e aggiungendo il seguente codice:
Codice PHP:
function contributors() {
global 
$wpdb;

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

foreach (
$authors as $author ) {

echo 
"[*]";
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 
"
"
;
echo 
"SitoWeb: <a href=\"";
the_author_meta('user_url'$author->ID);
echo 
"/\" target='_blank'>";
the_author_meta('user_url'$author->ID);
echo 
"</a>";
echo 
"
"
;
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 
"
"
;
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 
"";
}

Come detto questo codice mostra l'avatar, il nome, il sito web, il contatto twitter e il link che punta alla pagina autore del medesimo. A questo punto inizio a scrivere la pagina di template dove richiamare la funzione sopra esposta in questo modo:

Codice PHP:
<?php
/*
Template Name: Iscritti
*/
get_header(); ?>

<div id="content" class="narrowcolumn">

<div class="post page" id="post-<?php the_ID(); ?>">
<h2 class="title"><?php the_title(); ?></h2>
<div class="entry">

<div id="authorlist"><ul><?php contributors(); ?>[/list]</div>

</div>
</div>
</div>

<?php get_sidebar('iscritti'); ?>
<?php get_footer
('iscritti'); ?>
Fin quì tutto bene, la lista è perfetta e con un tocco di CSS la rendo gradevole anche dal punto di vista estetico:

codice:
    #authorlist ul{
    list-style: none;
    width: 600px;
    margin: 0;
    padding: 0;
    }
    #authorlist li {
    margin: 0 0 5px 0;
    list-style: none;
    height: 90px;
    padding: 15px 0 15px 0;
    border-bottom: 1px solid #ececec;
    }

    #authorlist img {
    width: 80px;
    height: 80px;
    float: left;
    margin: 0 15px 0 0;
    padding: 3px;
    border: 1px solid #ececec;
    }

    #authorlist div.authname {
    margin: 20px 0 0 10px;
    }
Ovviamente presumendo che il blog abbia diversi iscritti mi troverei con una lista molto lunga e elencarli tutti in un unica pagina sarebbe improponibile, quindi l'idea sarebbe visualizzare 10 utenti per pagina. Mi metto alla ricerca di una soluzione.

Sono abbastanza siuro che per arrivare alla soluzione bisogna giocare con get_query_var elencata sul codex wordpress ma essendo uno smanettone e non un esperto ho bigogno del vostro aiuo.

Ad oggi sono arrivato buttare giù un pò di codice ed è il seguente:

Codice PHP:
$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
)); 
Ora i problemi sono due: o il codice è sbagliato o incompleto o non so come richiamare la funzione nella pagina di template .... voglio segnalarvi due fonti degne di nota:

kovshenin.com
wordpress.stackexchange.com

NOTA: Per risolvere il problema sarei disposto anche a dare il giusto compenso (da concordare) in MP.