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!

0 0 voti
Valutazione dell'articolo
Iscriviti
Notificami
guest

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.

3 Commenti
Vecchi
Più recenti Le più votate
Feedback in linea
Visualizza tutti i commenti
anna
anna
10 anni fa

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

Cristian
Cristian
9 anni fa

Molto interessante, se volessi escludere più categorie di utenti come posso fare?

Cristian
Cristian
9 anni fa

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.

Rimani Aggiornato
Nuove idee, zero Spam
Ti invieremo solo le ultime novità di articoli o nostri progetti.
Iscrivendoti accetti la nostra privacy poliicy. Una volta iscritto, ricordati di attivare l'iscrizione cliccando sul link ricevuto via mail.
3
0
Esprimete la vostra opinione commentando.x