Veja se isso resolve seu problema, não está uma Brastemp mas acho que quebra o galho.
Adicione em seu function
add_action( 'show_user_profile', 'my_show_extra_profile_fields' );
add_action( 'edit_user_profile', 'my_show_extra_profile_fields' );
function my_show_extra_profile_fields( $user ) { ?>
<h3>Pontuações</h3>
<table class="form-table">
<tr>
<th><label for="pontos">Pontos adquiridos</label></th>
<td>
<?php if ( !current_user_can( 'activate_plugins', $user_id ) ) {?>
<input name="pontos" type="text" disabled="disabled" class="regular-text" id="pontos" style="background:#CCC; width:50px!important;" value="<?php echo esc_attr( get_the_author_meta( 'pontos', $user->ID ) ); ?>" />
<?php } else { ?>
<input name="pontos" type="text" class="regular-text" id="pontos" style="width:50px!important;" value="<?php echo esc_attr( get_the_author_meta( 'pontos', $user->ID ) ); ?>" />
<?php } ?>
<span class="description">pontos adquiridos até o momento</span>
</td>
</tr>
</table>
<?php }
add_action( 'personal_options_update', 'my_save_extra_profile_fields' );
add_action( 'edit_user_profile_update', 'my_save_extra_profile_fields' );
function my_save_extra_profile_fields( $user_id ) {
if ( !current_user_can( 'activate_plugins', $user_id ) )
return false;
update_usermeta( $user_id, 'pontos', $_POST['pontos'] );
}
?>
Teste direitinho, mas na teoria somente o administrador poderá alterar o valor da pontuação, os demais verão os pontos, mas a caixa estará desativada para ser atualizada com novos valores.
Não testei com todos os tipos de usuários, mas com autor funcionou como devia.
Em relação a lista eu não tentei, mas não deve ser difícil recuperar esses dados e exibir no seu tema.
Créditos do código original:
http://justintadlock.com/archives/2009/09/10/adding-and-using-custom-user-profile-fields
Maravilha. Por aqui, funcionou direitinho.