Améliorer votre référencement naturel gratuitement. Utilisez notre site de communiqué de presse gratuits. WordPress Geekeries

Publicité

En savoir plus
Afficher votre communauté sur votre blog !

Afficher votre communauté sur votre blog !

Cette fois ce n’est pas un plugin, mais plutôt une petite astuce vous permettant d’afficher les membres de votre communauté. J’entends par là, vos commentateurs. C’est eux qui font vivre votre blogs, les milliers de visiteurs c’est bien beau, mais si vos visiteurs vous remercie personnellement via un commentaire, cela entraîne une interaction positive entre vos lecteurs et vous. Cette affichage est assez à comprendre, nous allons récupérer chaque commentateurs de votre blog, afficher son avatar et l’adresse de son site ou blogs.

Certains de vos commentateurs utilisent “Gravatar“, le célèbre système d’affichage d’avatar. Ces commentateurs auront alors avatar affiché sur votre page communauté. Cependant, tous vos commentateurs n’utilise pas ce système, mais grâce à la fonction interne de WordPress, il vous est est possible d’afficher un avatar par défaut aux personnes n’utilisant pas ce service. Au pire des cas, utilisez notre deuxième fonction, qui se trouve en bas de cet article.

WordPress Community : Afficher votre communauté sur votre blog !


Afficher votre communauté sur votre blog !Tout d’abord, avant de commencer ce tutoriel, vous trouverez un exemple de ce que cela peut donner dans notre page “Communauté”. Cette page est avant tout pour remercier vos membres et visiteurs de leur fidélité, je vous propose de découvrir, si ce n’est pas déjà fait, notre page “Communauté

Accédez à notre page “Communauté”

Autres que vos commentateurs, si vous possédez un compte Twitter, pour promouvoir votre site ou blog, vous pouvez également afficher les personnes qui vous suivent, dans le jargon : les Followers. Ces followers ne commentent peut-être pas votre blog, mais ils vous suivent sur le service de micro blogging, il y a bien une raison à cela… sûrement pour vos articles, vos découvertes ou votre personne. Dans cette page “Communauté“, vous pouvez par exemple, comme sur ce blog, créer un événement tel que le “Blog de la semaine”. Vous mettez ainsi, chaque semaine, un blog à découvrir.

Commençons la création de cette page. Tout d’abord, il faut créer un fichier “community.php” dans le dossier de votre thème. Ce fichier, deviendra dans quelque instant la page de votre communauté. On va pour cela utiliser l’attribut “Modèle de page”. Une fois collé ce code dans votre page, il faut aller dans le module de création de Pages dans WordPress, de lui mettre un titre et de lui attribuer le nom du modèle de page : “Community” dans cet exemple.

<?php
/*
Template Name: Community
*/
get_header(); ?>

Afficher vos commentateurs !

Ensuite, pour le contenu de votre page qui affichera votre communauté, il fait copier le code du fichier “page.php” ou “single.php” de votre thème. Pour garder l’apparence de ces derniers. Ne vous en faites pas, je vais vous montrer un exemple d”intégration, ce n’est pas compliqué.
Mais tout d’abord, voyons comment afficher vos commentateurs. La première technique est très simple, mais affichera que certains avatars. Ceux qui n’utilisent pas le système “Gravatar” auront un avatar par défaut que vous pouvez modifier. Nous récupérons l’intégralité des commentateurs et nous lui ordonnons d’afficher un certain nombre d’avatar.

<h2>Nos commentateurs ! <small>(Aléatoire)</small></h2>
<?php
$sql = "SELECT DISTINCT comment_author_email, comment_author_url
FROM $wpdb->comments
WHERE comment_author_url IS NOT NULL AND comment_type=''
ORDER BY RAND() LIMIT 24";
$comments = $wpdb->get_results($sql);
foreach ($comments as $comment)
{
echo '<a href="'.$comment->comment_author_url.'">';
echo get_avatar($comment->comment_author_email, $size = '48', $default = 'Image par défaut');
echo '</a>';
}
?>

Soit vous utilisez le code précédent, qui est déjà pas mal, soit celui qui vient. Celui-ci permet d’afficher, les personnes ayant un avatar et uniquement eux. Toutefois, ce code ralentira l’affichage de votre blog, mais c’est le prix à payer.

<?php
	function validate_gravatar($email) //verifie si le gravatar existe
	{
		$hash = md5($email);
		$uri = 'http://www.gravatar.com/avatar/' . $hash . '?d=identicon&r=any&size=48';
		$headers = wp_get_http_headers($uri);
		if (!is_array($headers)) :
			return false;
		elseif (isset($headers["content-disposition"]) ) :
			return $uri;
		else :
			return false;
		endif;
	}

	//Sélection des commentateurs
	$sql = "SELECT DISTINCT comment_author_email, comment_author_url
	FROM $wpdb->comments
	WHERE comment_author_url IS NOT NULL AND comment_type=''
	ORDER BY RAND() LIMIT 200";
	$comments = $wpdb->get_results($sql);
	$i=0;
	foreach ($comments as $comment)
		{
			$gravatar = validate_gravatar($comment->comment_author_email);
			if (($gravatar != false) && ($i < 24)) //Nombre à afficher
			{
				echo '<a href="'.$comment->comment_author_url.'">';
				echo '<img alt="" class="avatar" src="'.$gravatar.'" />';
				echo '';
				$i++;
			}
		} 

?>

Afficher vos Follower’s (Twitter !)

Maintenant, nous allons voir comment afficher les personnes qui vous suivent sur Twitter, si toutefois vous avez un compte. Ce code a été pris sur cet excellent article de Ashley. Cependant, vous devez insérer votre nom d’utilisateur et votre mot dans le code suivant. Rien de méchant, c’est juste pour se connecter au fichier XML de Twitter et ainsi récupérer les informations que vous souhaitez. Si vous souhaitez afficher les personnes que vous suivez et non ceux qui vous suivent, il suffit de remplacer (dans le code suivant) la valeur “follower” par “friends” dans l’adresse du fichier xml (variable “$target”).

<?php

$username = "user";
$login = "user:passwd";
$count = "24";

$target = "http://twitter.com/statuses/followers/".$username.".xml?count=".$count."";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $target);
curl_setopt($ch, CURLOPT_USERPWD, $login);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

$gettwit = curl_exec($ch);

$twitters = new SimpleXMLElement($gettwit);
$following = count($twitters);
if ($following>2) {
	echo "<h2>Nos ".$following." derniers membres ! <small>(Twitter)</small></h2>";
	}
## Printing/Dumping the data
foreach ($twitters->user as $twit) {
 echo "<a href=\"", $twit->url, "\"><img style='margin: 4px; height:48px; widht: 48px; text-align: center;'  src=\"", $twit->profile_image_url, "\" title=\"", $twit->name, "\" alt=\"\" /></a>";}

curl_close($ch);
?>

Personnaliser l’affichage des avatars !

Pour personnaliser les avatars affichés c’est très simple. Nous utilisons la fonction interne de WordPress permettant d’afficher les Gravatar (get_avatar – sauf pour twitter, bien évidemment). À la base cette fonction ajoute une “class” CSS aux images : “avatar“. Il vous suffit alors de coller ce code css dans votre feuille de style ou dans la page que nous créions.

<style>
.avatar {
	padding: 2px;
	margin: 4px;
	border: 1px solid #EFEFEF;
	height:48px;
	width: 48px;
}
</style>

Un simple exemple d’intégration !

Les codes donnés précédemment sont plutôt facile à comprendre et peuvent être intégrés assez facilement dans n’importe quelle page de votre blog. Mais voici comment intégrer ces codes dans votre blog. (Exemple complet)

<?php
/*
Template Name: Community
*/

get_header(); ?>

<style>
.avatar {
	padding: 2px;
	margin: 4px;
	border: 1px solid #EFEFEF;
	height:48px;
	width: 48px;
}
</style>

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

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

<?php

$username = "user";
$login = "user:passwd";
$count = "24";

$target = "http://twitter.com/statuses/followers/".$username.".xml?count=".$count."";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $target);
curl_setopt($ch, CURLOPT_USERPWD, $login);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

$gettwit = curl_exec($ch);

$twitters = new SimpleXMLElement($gettwit);
$following = count($twitters);
if ($following>2) {
	echo "<h2>Nos ".$following." derniers membres ! <small>(Twitter)</small></h2>";
	}
## Printing/Dumping the data
foreach ($twitters->user as $twit) {
 echo "<a href=\"", $twit->url, "\"><img style='margin: 4px; height:48px; widht: 48px; text-align: center;'  src=\"", $twit->profile_image_url, "\" title=\"", $twit->name, "\" alt=\"\" /></a>";}

curl_close($ch);
?>

<h2>Nos commentateurs ! <small>(Aléatoire)</small></h2>

<?php
$sql = "SELECT DISTINCT comment_author_email, comment_author_url
FROM $wpdb->comments
WHERE comment_author_url IS NOT NULL AND comment_type=''
ORDER BY RAND() LIMIT 24";
$comments = $wpdb->get_results($sql);
foreach ($comments as $comment)
{
echo '<a href="'.$comment->comment_author_url.'">';
echo get_avatar($comment->comment_author_email, $size = '48', $default = 'Image par défaut');
echo '</a>';
}
?>

  </div>
 </div>
 <?php endwhile; endif; ?>
 <?php edit_post_link('Modifier.', '<p>', '</p>'); ?>

</div>

<?php get_sidebar(); ?>
Ajouter un commentaire

19 commentaires !

  1. Marine says:

    août 12, 2009

    Répondre

    Merci pour ce tuto qui peut donner un résultat super sympa effectivement !
    Par contre j’ai tout suivi à la lettre mais… n’y aurait-il pas une erreur dans la partie pour les Followers Twitter ? Tout fonctionne bien chez moi jusqu’au mmt où j’ajoute cette partie et qui me donne l’erreur suivante :

    Parse error: syntax error, unexpected ‘/’ in /homez.131/……..community.php on line …

    pourtant j’ai tout vérifié.
    une idée ?

    • Valentin says:

      août 12, 2009

      Répondre

      Salut Marine, je viens de corriger le petit bug ! Merci ton retour !
      Tout devrait marcher maintenant (si tu possède bien évidemment cURL)

      • Marine says:

        août 12, 2009

        Répondre

        Merci pour la rapidité !
        Effectivement je n’ai plus l’erreur, par contre rien ne s’affiche pour la partie Twitter.
        Tu disais si je possède … ??

  2. Finrod says:

    août 12, 2009

    Répondre

    Très intéressant, je crois que je vais intégrer ça sur mon blog.

    Quelques petites questions :
    - si on a un avatar généré automatiquement pour les commentateurs qui n’en n’ont pas, il est utilisé ?
    - si tu peux la trouver rapidement, tu peux donner la requête SQL pour avoir les commentateurs triés suivant le nombre de commentaires (j’ai un peu la flemme de réflechir :eek: )
    - un widget prenant un commentateur et/ou un follower aléatoirement qui serait affiché dans la sidebar serait long à développer ? (je réfléchirai un peu là, si besoin :) )
    - il n’y a pas une meilleure méthode pour twitter, qui éviterai de mettre le mot de passe en clair ?

    En tout ca, merci beaucoup pour l’astuce !

    • Finrod says:

      août 12, 2009

      Répondre

      Bon, j’ai commencé à réfléchir pour la requête SQL suivant le nombre de commentaire :

      $sql = "SELECT DISTINCT COUNT(comment_author) AS comment_comments, comment_author, comment_author_email, comment_author_url
      FROM $wpdb->comments
      WHERE user_id NOT IN('1')
      AND comment_author IS NOT NULL
      AND comment_type = ''
      AND comment_approved = '1'
      GROUP BY comment_author
      ORDER BY comment_comments DESC LIMIT 10";

      et je te propose de rajouter cette ligne dans ta requête pour éviter que l’avatar de l’admin n’apparaisse dans la liste des commentateurs ;)

      user_id NOT IN('1')

      Je continue mes réflexions…

      • Valentin says:

        août 12, 2009

        Répondre

        Salut ! Merci pour ce petit code :) J’essayerai de le rajouter dans
        mon article si tu m’en donnes l’autorisation (s’il fonctionne bien aussi ;)).

        Pour exclure l’admin de l’affichage, c’est noté… je modifie dès que
        possible. Pour le widget, je ne pense pas que cela prend beaucoup de
        temps. Avec la nouvelle version de WordPress la création de
        Widget est plutôt simple… mais personnellement je n’aime pas
        les widgets ^^

        A+

      • Finrod says:

        août 13, 2009

        Répondre

        Bien sûr que tu peux utiliser mon code pour compléter ton article ;) il fonctionne bien chez moi en tout cas :)

        Pour les widgets, je suis pas fan non plus, et finalement, pour mettre directement dans le code de la sidebar, c’est plutôt simple : copier coller du code ou création d’une petite fonction.

        Tu as des idées pour l’affichage de l’avatar généré automatiquement par wordpress ?

      • Finrod says:

        août 13, 2009

        Répondre

        Bon, je continue de répondre à mes questions ;)

        Pour l’affichage de l’avatar, le plus simple c’est de ne pas mettre l’option $default dans le get_avatar. Comme ça il prend le type d’avatar qui est configuré dans le panneau d’admin de WP : Réglages/Discussion (tout en bas)

        echo get_avatar($comment->comment_author_email, $size = '48');

        Bon, la prochaine étape est de modifier le get_avatar pour pouvoir ajouter une info-bulle à l’image. Une idée pour le faire sans modifier les fichiers system de WP ?

  3. [...] Afficher votre communauté sur votre blog ! – Geekeries [...]

  4. [...] Afficher votre communauté sur votre blog sur Geekeries. [...]

  5. Benoa says:

    août 15, 2009

    Répondre

    Excellente idée! Merci d’avoir partagé le code :)

  6. PCEM1 says:

    août 17, 2009

    Répondre

    Trop sympa le partage du code!

  7. [...] Geekeries : Le communitarisme, c’est important et c’est d’ailleurs ce qui nous distingue de ces enfoirés d’américains (enfin ça et leur manie de nommer des acteurs nazes à des postes importants de leur administration) et justement, Valentin nous explique comment afficher sa communauté sur son blog. [...]

  8. [...] fait un article sur comment afficher votre communauté sur votre blog. En transformant ce tutoriel en un plugin, les fonctionnalités seront plus [...]

  9. lupi says:

    sept 7, 2009

    Répondre

    Il faudrait modifier le titre du sujet ce n’est pas la communauté du blog mais de twitter. Tout le monde ne va pas sur ce truc là.

    • See Mee says:

      sept 8, 2009

      Répondre

      @Lupi : J’ai cru comprendre que l’article de Valentin n’est pas restreint à Twitter (ex. sous-titre “afficher vos commentateurs”, juste avant “afficher vos followers”).

  10. Geek vintage says:

    nov 28, 2009

    Répondre

    Le code pour Twitter ne marche pas. Je ne capte pas pourqoi.

    Si j’ai bien compris, il faut juste modifier 2 éléments :

    $username = “user”;
    $login = “user:passwd”;
    $count = “24″;

    Je vais prendre un exemple : http://twitter.com/geekeriesfr

    A la place de “user”, on indique “geekeriesfr” et à la place “user:passwd” on ajoute son mot de passe tout simplement ?

    C’est ça ? Parce que si c’est ça, ça ne marche pas chez moi ;-)

    Merci en tout cas pour cette très bonne idée.

    • Valentin says:

      déc 4, 2009

      Répondre

      Dans la ligne : $login = “user:passwd”; il faut remettre ton nom d’utilisateur et ton mot de passe. (geekeriesfr:passwd. Si tu as bien évidemment protégé ton compte

  11. sweetdragon says:

    juin 4, 2010

    Répondre

    Bonjour,
    je tourne en rond avec community.php
    j’ai cette erreur
    Parse error: syntax error, unexpected ‘”‘, expecting ‘,’ or ‘;’ in [...]sweetdragon/wordpress/wp-content/themes/community.php on line 46

    j’ai échapé les double quotes et autres mais comme je ne suis pas expert php mais plutôt noob !

    merci de vôtre aide.

Qu'est-ce que vous en pensez ? :)

Nom obligatoire

Site

♥ Ici, on utilise KeywordLuv. Entrez YourName@YourKeywords dans le formulaire "Nom" pour bénéficier des avantages SEO d'un mot-clef ciblé. Devenez membre et connectez-vous pour partager des fichiers via les commentaires !

Votre Newsletter WordPress !