Come creare pagina autori WordPress con lista e profili social

Avere una pagina completa con tutta la lista dei vostri autori può risultare estremamente utile sopratutto nel caso voi abbiate un blog o magazine online piazzato su Google News. Proprio quest’ultimo servizio richiede infatti la presenza della lista completa delle firme dei vostri redattori al fine di analizzare il trust del sito.

Per creare una pagina autori completa gli step sono relativamente semplici… ma andiamo con ordine.

Step1: Create il template di pagina personalizzato

Per prima cosa creiamo il template di pagina che useremo nel sito per renderizzare la nostra lista:

/*
Template Name: Pagina autori
*/

Una volta creato il file dentro la root del vostro tema, (date il nome che meglio vi aggrada)  andate in wordpress e create una nuova pagina chiamata “autori” e collegate il template di pagina che avete appena creato.

Step 2: Il loop degli autori

Veniamo ora al “cuore” della pagina ovvero: come reperire la lista autori completa del sito? Per farlo andiamo a usare una funziona fondamentale di WordPress ovvero Wp Query.

$allUsers = get_users('orderby=post_count&order=DESC');

Con questa riga di codice andiamo a recuperare tutti gli utenti presenti nel sito filtrandoli in ordine Discendente per post inseriti.

$users = array();

//Rimuovi i sottoscrittori dalla lista.
foreach($allUsers as $currentUser)
{
	if(!in_array( 'subscriber', $currentUser->roles ))
	{
		$users[] = $currentUser;
	}
}

Con questo codice andiamo ad “eliminare” da tutti gli utenti i sottoscrittori (in quanto – di fatto – loro non possono scrivere articoli). Andiamo a creare così un array chiamato $users che contiene solo le persone che scrivono post nel vostro blog.

Step 3: Scheletro HTML della lista autori

A questo punto abbiamo la nostra “base dati” ci basta semplicemente stampare i risultati nella nostra pagina. Per farlo useremo un comune ciclo foreach che andrà a mostrare tutta la nostra lista.

<?php
foreach($users as $user)
{
	?>
	<div class="author">
		<div class="authorAvatar"><?php echo get_avatar( $user->user_email, '128' ); ?></div>
		<div class="authorInfo">
			<h2 class="authorName"><?php echo $user->display_name; ?></h2>
			<p class="authorDescrption"><?php echo get_user_meta($user->ID, 'description', true); ?></ p>
			<p class="authorLinks"><a href="<?php echo get_author_posts_url( $user->ID ); ?>">Articoli autore</a></p>
<p class="socialIcons">
<ul>
	<?php
	$website = $user->user_url;
	if($user->user_url != '')
	{
		printf('<li><a href="%s">%s</a></li>', $user->user_url, 'Website');
	}

	$twitter = get_user_meta($user->ID, 'twitter_profile', true);
	if($twitter != '')
	{
		printf('<li><a href="%s">%s</a></li>', $twitter, 'Twitter');
	}

	$facebook = get_user_meta($user->ID, 'facebook_profile', true);
	if($facebook != '')
	{
		printf('<li><a href="%s">%s</a></li>', $facebook, 'Facebook');
	}

	$google = get_user_meta($user->ID, 'google_profile', true);
	if($google != '')
	{
		printf('<li><a href="%s">%s</a></li>', $google, 'Google');
	}

	$linkedin = get_user_meta($user->ID, 'linkedin_profile', true);
	if($linkedin != '')
	{
		printf('<li><a href="%s">%s</a></li>', $linkedin, 'LinkedIn');
	}
?>
</ul>
</p>
		</div>
	</div>
<?php
}
?>

Per una panoramica completa delle funzioni author vi invito a leggere questa pagina del CODEX WordPress.

Codice completo della pagina

Per completezza di trattazione qui sotto troverete il codice completo della pagina autori, pronto per essere usato!

<?php
/*
Template Name: Pagina autori
*/

// Tutti gli utenti
$allUsers = get_users('orderby=post_count&order=DESC');

$users = array();

// Rimuovi sottoscrittori al blog
foreach($allUsers as $currentUser)
{
	if(!in_array( 'subscriber', $currentUser->roles ))
	{
		$users[] = $currentUser;
	}
}

?>

<?php get_header(); ?>

<section class="content" role="main">
	<?php
		printf('<h1>%s</h1>', the_title());

		foreach($users as $user)
		{
			?>
			<div class="author">
				<div class="authorAvatar">
					<?php echo get_avatar( $user->user_email, '128' ); ?>
				</div>
				<div class="authorInfo">
					<h2 class="authorName"><?php echo $user->display_name; ?></h2>
					<p class="authorDescrption"><?php echo get_user_meta($user->ID, 'description', true); ?></p>
					<p class="authorLinks"><a href="<?php echo get_author_posts_url( $user->ID ); ?>">Visualizza tutti i post</a></p>

					<p class="socialIcons">
						<ul>
							<?php
								$website = $user->user_url;
								if($user->user_url != '')
								{
									printf('<li><a href="%s">%s</a></li>', $user->user_url, 'Website');
								}

								$twitter = get_user_meta($user->ID, 'twitter_profile', true);
								if($twitter != '')
								{
									printf('<li><a href="%s">%s</a></li>', $twitter, 'Twitter');
								}

								$facebook = get_user_meta($user->ID, 'facebook_profile', true);
								if($facebook != '')
								{
									printf('<li><a href="%s">%s</a></li>', $facebook, 'Facebook');
								}

								$google = get_user_meta($user->ID, 'google_profile', true);
								if($google != '')
								{
									printf('<li><a href="%s">%s</a></li>', $google, 'Google');
								}

								$linkedin = get_user_meta($user->ID, 'linkedin_profile', true);
								if($linkedin != '')
								{
									printf('<li><a href="%s">%s</a></li>', $linkedin, 'LinkedIn');
								}
							?>
						</ul>
					</p>
				</div>
			</div>
			<?php
		}
	?>
</section>

<?php get_footer(); ?>

Conclusioni

Spero che questa mini-guida sia utile a tutti coloro che hanno l’esigenza di creare una pagina autori completa ma anche semplice nel suo insieme. Ovviamente vi invito a leggere tutte le referenze presenti nell’articolo per migliorare la pagina e adattarla al meglio alle vostre necessità (oppure semplicemente per sanare la vostra sete di conoscenza).

Questo articolo ti è stato utile? Allora clicca mi piace qui sotto!

  1. Grazie per la spiegazione, tutto funziona! Unica cosa, come si fanno a eliminare determinati utenti? Prendo ad esempi l’admin, che non scrive articoli ma ha appunto il ruolo di admin. Grazie!
    A presto

  2. La parte di codice inerente ai social non funziona e modificandola in questo modo


    $facebook = get_user_meta($user->ID, 'facebook', true);
    if($user->facebook != '')
    {
    printf('%s', $facebook, 'Facebook');
    }

    adesso funziona bene.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

impostare-un-intervallo-dinamico-di-date-con-jquery-ui-datapicker
Up Next:

Impostare un intervallo dinamico di date con jQuery UI Datapicker

Impostare un intervallo dinamico di date con jQuery UI Datapicker