X

Créer un widget Twitter personnalisé sans plugin

On m'a demandé plusieurs fois quel plugin WordPress j'utilisais pour générer la liste "Flux Twitter" dans le pied de page de mon site. En fait, je n'utilise aucun plugin, c'est un extrait de Javascript de Twitter qui affiche une liste de mes tweets récents que j'ai stylisé avec du CSS. Dans ce tutoriel, je vais vous montrer :

  • Le code HTML et Javascript nécessaire pour récupérer les derniers tweets
  • Un aperçu du balisage HTML et des sélecteurs CSS associés
  • Deux exemples de widgets Twitter personnalisés que j'ai moi-même utilisés

Lisez la suite pour voir le reste du tutoriel...

Le HTML et le Javascript

Twitter fournissait autrefois ce code sur son site, mais pour une raison quelconque, il l'a supprimé au profit de ces widgets beaucoup moins flexibles. Vous aurez besoin de deux morceaux de code.

Tout d'abord, placez le code suivant là où vous souhaitez que la liste apparaisse :

<ul id="twitter_update_list"><li>Twitter feed loading</li></ul>

Remarque : Le <li>Flux Twitter en cours de chargement</li> ne fait pas partie du code original fourni par Twitter, mais il est requis pour que le HTML soit valide. Il peut également fournir un message utile pendant le chargement du flux, car cela peut prendre quelques secondes par une journée lente.

Deuxièmement, vous devrez placer les lignes de Javascript suivantes aussi près que possible de la balise </body>.

<script type="text/javascript" src="http://twitter.com/javascripts/blogger.js"></script>
<script type="text/javascript" src="http://twitter.com/statuses/user_timeline/USERNAME.json?callback=twitterCallback2&count=3"></script>

J'ai actuellement ce code juste au-dessus de mon code Google Analytics. Vous devriez garder ces lignes de Javascript aussi bas que possible sur la page, car si Twitter ne se charge pas, tout ce qui se trouve en dessous de ce code sera bloqué (ce qui n'est pas très grave s'il est déjà en bas).

Aperçu du balisage HTML et des sélecteurs CSS

Maintenant, vous ne pouvez pas voir le balisage HTML que le widget Twitter génère sans utiliser quelque chose comme la barre d'outils de développement Web. Heureusement pour vous, je l'ai fait pour vous. Voici un exemple de liste avec un seul tweet.

<ul id="twitter_update_list">
<li><span>RT @<a href="http://twitter.com/Screenr">Screenr</a>: Cool Screenr update: Now your screencasts publish twice as fast. <a href="http://screenr.com/aDp">http://screenr.com/aDp</a></span> <a style="font-size: 85%;" href="http://twitter.com/themelab/statuses/14229492866">46 minutes ago</a></li>
</ul>
  • #twitter_update_list – Sélectionne la liste entière
  • #twitter_update_list li – Sélectionne les éléments de liste individuels
  • #twitter_update_list li span – Sélectionne la partie « tweet » de l’élément de liste, pas le lien « il y a X temps ».
  • #twitter_update_list li span a – Sélectionne le lien dans la partie « tweet » de l’élément de liste.
  • #twitter_update_list a[style="font-size: 85%;"] – Sélectionne le lien « il y a X temps », d’une manière un peu astucieuse (voir la note ci-dessous).

Note : Comme il y a un style en ligne dans le lien « il y a X temps » qui définit la taille de la police à 85 %, il est quelque peu difficile de le remplacer sans un code astucieux. Je l’ai déjà utilisé pour réinitialiser la taille de la police à celle du reste de la liste :

#twitter_update_list a[style="font-size: 85%;"] { font-size: 1em !important; }

Cela ne fonctionne probablement pas dans les premières versions d’IE à cause de la partie « !important ». Vous pouvez également utiliser display: block; pour déplacer ce lien à la ligne suivante.

Exemple en direct

Pour un exemple en direct, consultez le pied de page de Theme Lab. Ou si vous lisez ceci dans votre lecteur de flux ou un site de scraping non autorisé, consultez la capture d'écran ci-dessous.

Flux Twitter Theme Lab

Voici le code que j’utilise pour la liste :

#twitter_update_list {
	font-size: 13px;
	line-height: 21px;
	list-style: none;
	}
#twitter_update_list li {
	background: url('images/twitter-divider.gif') bottom left repeat-x;
	padding-bottom: 7px;
	margin-bottom: 9px;
	}
#twitter_update_list span, #twitter_update_list span a {
	color: #ababab;
	text-decoration: none;
	}
#twitter_update_list a {
	color: #6f7276;
	}
  • La première ligne sélectionne la liste entière. Elle définit la taille de la police, la hauteur de ligne et s’assure qu’aucun point de puce n’apparaît.
  • La deuxième ligne fait répéter une petite image de 2×1 sous chaque élément de liste comme une sorte de séparateur. Le rembourrage définit l’espace entre le tweet et le bord supérieur du séparateur. La marge définit l’espace entre le bord inférieur du séparateur et le tweet suivant.
  • La troisième ligne définit la couleur du tweet, y compris les liens, et s’assure qu’aucune ligne n’apparaît sous les liens.
  • La dernière ligne définit la couleur du lien « il y a X temps ».

Et voilà ! Si je devais changer une chose, je différencierais d’une manière ou d’une autre les liens dans le tweet, et j’ajouterais peut-être des effets de survol sur les liens également.

Ceci peut être utilisé sur n'importe quel site

Contrairement à tous les autres articles comment faire XYZ sans plugin, aucun code WordPress réel n'est utilisé dans ce tutoriel.

Comme cela n'utilise aucun code WordPress, il n'est pas classé dans la collection Tutoriels WordPress. Il peut être utilisé sur à peu près n'importe quel type de site, en supposant que vous puissiez modifier le code source HTML et CSS.

Si vous souhaitez l'utiliser dans WordPress, je vous suggère de modifier manuellement les fichiers de votre thème pour insérer les deux lignes de Javascript dans le pied de page de votre site, ou même de l'accrocher à votre hook wp_footer().

Quant au widget lui-même, vous pouvez soit coller le code dans un widget texte, soit le coder manuellement dans votre barre latérale (ou ailleurs).

Conclusion

J'espère que vous avez tous aimé le tutoriel, j'adorerais connaître vos réflexions dans les commentaires. Si vous avez des demandes de conseils rapides sur WordPress ou CSS, n'hésitez pas à me le faire savoir. Cela pourrait être présenté dans un futur article Tutorial Tuesday sur Theme Lab !

Commentaires   Laisser une réponse

  1. Je voulais juste noter que la 2ème ligne de code Javascript ne fonctionne plus. Pour toute personne qui met cela en œuvre, assurez-vous de remplacer la 2ème ligne de code par la suivante :

    Leland, vous voudrez peut-être mettre à jour votre article pour refléter cela.

    1. Rich – on dirait que votre code a disparu… pouvez-vous essayer de poster avec des espaces s'il vous plaît ???

      Merci

  2. On dirait que cela ne fonctionne plus. Des idées ?

  3. Cher Leland,

    Savez-vous pourquoi l'application de flux Twitter que vous avez publiée sur votre site Web ne fonctionne plus. Même sur votre propre site Web, cela ne fonctionne pas.

    J'espère avoir de vos nouvelles.

    Cordialement,

    André van Wijngaarden

    1. Twitter a essentiellement changé l'URL de ses flux. Bien que tout le reste fonctionnait toujours, j'avais supposé que cela aurait pu être le cas.

      ——
      Au lieu d'utiliser l'URL fournie dans le tutoriel ci-dessus : http://twitter.com/statuses/user_timeline/USERNAME.json?callback=twitterCallback2&count=3

      ... Vous voudrez utiliser l'URL que je fournis qui suit :
      http://api.twitter.com/1/statuses/user_timeline.json?screen_name=USERNAME&include_rts=true&count=3&callback=twitterCallback2

      Le « count » est maintenant situé au milieu de l'URL au lieu d'être à la fin, avec le nom d'utilisateur.

      Profitez-en.
      <3 ~ CaT

  4. mon commentaire est toujours en attente de modération, mais j'ai trouvé la solution sur le site des développeurs de Twitter.

    https://dev.twitter.com/discussions/11701

    changez ceci :

    par ceci :

  5. Cette méthode ne fonctionne plus ?

    Je vois que ce site rencontre également le même problème dans votre widget de pied de page.

    Des mises à jour ?

  6. Caroline McQueen October 22, 2012 at 5:05 am

    Pour une raison quelconque, cela a cessé de fonctionner sur mon blog. Des idées pourquoi ?

    J'ai dû passer à un widget jquery pour le reste de mon site, mais cela ne fonctionne pas dans WordPress 🙁

  7. Est-ce que cela fonctionne toujours ? Je n'ai que le message « chargement du flux Twitter » qui s'affiche. Sinon, avez-vous une autre solution ?

  8. J'utilisais cette méthode sur quelques sites clients. Cela a récemment cessé de fonctionner partout. Il semble que cela ne fonctionne pas non plus dans le pied de page ici (themelab.com).

    Ahhh ! Quelqu'un a une solution ?

  9. L'appel API « http://twitter.com/statuses/user_timeline/USERNAME.json? » utilisé ici a été déprécié, remplacez-le donc par le suivant :

    https://api.twitter.com/1/statuses/user_timeline.json?screen_name=USERNAME&count=2&callback=twitterCallback2

  10. Y a-t-il un moyen de rendre la liste complètement horizontale ?
    De sorte que les trois tweets s'affichent en ligne plutôt qu'empilés les uns sur les autres ?
    (Je l'utilise comme un bandeau défilant)
    Je veux que le premier tweet défile, puis le 2ème tweet... et ainsi de suite.

    Plutôt que les 3 affichés en même temps.

  11. Désolé de déterrer un post aussi ancien, j'ai implémenté votre code et il fonctionne très bien pour IE9, mais ne se charge pas pour FF 14. J'ai eu des problèmes similaires avec des plugins Twitter, aussi. Chrome, Blackberry fonctionnent tous bien et se chargent. Cela pourrait-il être un problème avec mon CSS et quelque chose d'autre qui le fait planter dans FF ?

  12. Pour le bien d'autres n00bs comme moi : remplacez USERNAME dans le code ci-dessus par votre nom d'utilisateur Twitter réel. 😉

    Merci pour cela !

  13. Vous pouvez également cibler le lien de l'horodatage avec une pseudo-classe :
    #twitter_update_list a:last-child

Ajouter un commentaire

Nous sommes heureux que vous ayez choisi de laisser un commentaire. N'oubliez pas que tous les commentaires sont modérés conformément à notre politique de confidentialité, et tous les liens sont nofollow. N'utilisez PAS de mots-clés dans le champ nom. Ayons une conversation personnelle et significative.

Liste de contrôle de lancement WordPress

La checklist ultime pour lancer un WordPress

Nous avons compilé tous les éléments essentiels de la liste de contrôle pour le lancement de votre prochain site Web WordPress dans un ebook pratique.
Oui, envoyez-moi l'eBook gratuit !