X

Crea un Widget Twitter Personalizzato Senza Plugin

Mi è stato chiesto più volte quale plugin WordPress uso per generare la lista "Twitter Feed" nel footer del mio sito. In realtà non uso affatto un plugin, è uno snippet di Javascript di Twitter che visualizza un elenco dei miei tweet recenti che ho stilizzato con CSS. In questo tutorial, ti mostrerò:

  • Il codice HTML e Javascript necessario per recuperare gli ultimi tweet
  • Una panoramica del markup HTML e dei selettori CSS associati
  • Due esempi di widget Twitter personalizzati che ho usato io stesso

Continua a leggere per vedere il resto del tutorial…

L'HTML e il Javascript

Twitter forniva questo codice sul suo sito, ma per qualche motivo lo ha rimosso a favore di questi widget molto meno flessibili. Avrai bisogno di due pezzi di codice.

Innanzitutto, inserisci il seguente codice dove vuoi che appaia la lista:

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

Nota: Il tag <li>Twitter feed loading</li> non fa parte del codice originale fornito da Twitter, ma è necessario per convalidare l'HTML. Può anche fornire un messaggio utile mentre il feed è in caricamento, poiché potrebbe richiedere alcuni secondi in una giornata lenta.

In secondo luogo, dovrai inserire le seguenti righe di Javascript il più vicino possibile al tag </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>

Attualmente lo ho subito sopra il mio codice di Google Analytics. Dovresti mantenere queste righe di Javascript il più in basso possibile nella pagina perché nel caso in cui Twitter non si carichi, tutto ciò che si trova sotto quel codice si bloccherà (il che non è un grosso problema se è già in fondo).

Panoramica del markup HTML e dei selettori CSS

Ora non puoi vedere il markup HTML generato dal widget di Twitter senza usare qualcosa come Web Developer Toolbar. Fortunatamente per te, l'ho fatto io. Ecco un esempio di lista con un solo tweet come esempio.

<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 – Seleziona l'intera lista
  • #twitter_update_list li – Seleziona singoli elementi della lista
  • #twitter_update_list li span – Seleziona la parte "tweet" dell'elemento della lista, non il link "tempo fa"
  • #twitter_update_list li span a – Seleziona il link all'interno della parte "tweet" dell'elemento della lista
  • #twitter_update_list a[style="font-size: 85%;"] – Seleziona il link "tempo fa", in modo un po' hacky (vedi nota sotto).

Nota: Poiché c'è uno stile inline nel link "tempo fa" che imposta la dimensione del carattere all'85%, rende un po' difficile sovrascriverlo senza un pezzo di codice hacky. Ho usato questo in precedenza per reimpostare la dimensione del carattere alla stessa del resto della lista:

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

Questo probabilmente non funziona nelle prime versioni di IE a causa della parte "!important". Puoi anche usare display: block; per spostare quel link alla riga successiva.

Esempio Live

Per un esempio live, controlla il footer di Theme Lab. Oppure, se stai leggendo questo nel tuo lettore di feed o su un sito scraper non autorizzato, controlla lo screenshot qui sotto.

Feed Twitter di Theme Lab

Ecco il codice che uso per la lista:

#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 prima riga seleziona l'intera lista. Imposta la dimensione del carattere, l'altezza della linea e si assicura che non vengano visualizzati punti elenco.
  • La seconda riga crea un'immagine 2x1 che si ripete sotto ogni elemento dell'elenco come una sorta di divisore. Il padding imposta lo spazio tra il tweet e il bordo superiore del divisore. Il margine imposta lo spazio tra il bordo inferiore del divisore e il tweet successivo.
  • La terza riga imposta il colore del tweet, inclusi i link, e assicura che nessuna riga venga visualizzata sotto i link.
  • L'ultima riga imposta il colore del link "tempo fa".

E questo è tutto! Se dovessi cambiare una cosa, differenzierei in qualche modo i link all'interno del tweet e forse aggiungerei effetti al passaggio del mouse sui link.

Questo può essere utilizzato su qualsiasi sito

A differenza di tutti gli altri post su come fare XYZ senza un plugin, in questo tutorial non viene utilizzato alcun codice WordPress.

Poiché non utilizza codice WordPress, non è inserito nella raccolta Tutorial WordPress. Può essere utilizzato su quasi ogni tipo di sito, supponendo che tu possa modificare il codice sorgente HTML e CSS.

Se vuoi usarlo all'interno di WordPress, ti suggerirei di modificare manualmente i file del tuo tema per inserire le due righe di Javascript nel footer del tuo sito, o persino agganciarlo al tuo hook wp_footer().

Per quanto riguarda il widget stesso, puoi incollare il codice all'interno di un widget di testo o codificarlo manualmente nella tua barra laterale (o ovunque).

Conclusione

Spero che il tutorial vi sia piaciuto, mi piacerebbe sentire i vostri pensieri nei commenti. Se avete richieste per rapidi suggerimenti su WordPress o CSS, non esitate a farmelo sapere. Potrebbe essere presentato in un futuro post di Tutorial Tuesday su Theme Lab!

Commenti   Lascia una risposta

  1. Volevo solo far notare che la seconda riga di codice Javascript non funziona più. Per chiunque implementi questo, assicurati di sostituire la seconda riga di codice con la seguente:

    Leland, potresti voler aggiornare il tuo post per riflettere questo.

    1. Monique Olivera 10 gennaio 2013 alle 11:58

      Rich – sembra che il tuo codice sia scomparso... puoi provare a pubblicare con alcuni spazi per favore???

      Grazie

  2. Sembra che questo non funzioni più. Idee?

  3. Caro Leland,

    Sai perché l'app feed di Twitter che hai pubblicato sul tuo sito non funziona più. Anche sul tuo sito non funziona.

    Spero di sentirti.

    Cordiali saluti,

    André van Wijngaarden

    1. Twitter ha fondamentalmente cambiato l'URL per i suoi feed. Dato che tutto il resto funzionava ancora, avevo ipotizzato che potesse essere questo il caso.

      ——
      Invece di utilizzare l'URL fornito nel tutorial sopra: http://twitter.com/statuses/user_timeline/USERNAME.json?callback=twitterCallback2&count=3

      ... Vorrai usare l'URL che ti fornisco di seguito: http://api.twitter.com/1/statuses/user_timeline.json?screen_name=USERNAME&include_rts=true&count=3&callback=twitterCallback2

      Il "count" si trova ora al centro dell'URL invece che alla fine, insieme al nome utente.

      Buon divertimento.
      <3 ~ CaT

  4. il mio commento è ancora in attesa di moderazione, ma ho trovato la soluzione sul sito degli sviluppatori di twitter.

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

    cambia questo:

    in questo:

  5. Questo metodo non funziona più?

    Vedo che anche questo sito ha lo stesso problema nel tuo widget nel footer.

    Ci sono aggiornamenti?

  6. Caroline McQueen 22 ottobre 2012 alle 05:05

    Per qualche motivo questo ha smesso di funzionare sul mio blog. Hai idea del perché?

    Ho dovuto passare a un widget jquery per il resto del mio sito, ma questo non funziona in wordpress 🙁

  7. Funziona ancora? Vedo solo la scritta "twitter feed loading". Se no, hai un altro modo?

  8. Stavo usando questo metodo su alcuni siti di clienti. Recentemente ha smesso di funzionare ovunque. Sembra che non funzioni nemmeno nel footer qui (themelab.com).

    Ahhh! Qualcuno ha una soluzione?

  9. La chiamata API "http://twitter.com/statuses/user_timeline/USERNAME.json?" usata qui è stata deprecata, quindi sostituiscila con la seguente:

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

  10. C'è un modo per rendere la lista completamente orizzontale?
    In modo che tutti e tre i tweet vengano visualizzati in fila invece che impilati uno sull'altro?
    (Lo sto usando come un carosello)
    Voglio che il primo tweet scorra, poi il secondo tweet... e così via.

    Invece che tutti e 3 visualizzati contemporaneamente.

  11. Scusa per aver ripreso un post così vecchio, ho implementato il tuo codice e funziona benissimo per IE9, ma non carica per FF 14. Ho avuto problemi simili anche con i plugin di twitter. Chrome, blackberry funzionano tutti bene e caricano. Potrebbe essere un problema con il mio CSS e qualcos'altro che causa il blocco in FF?

  12. Per il bene di altri n00b come me: sostituisci USERNAME nel codice sopra con il tuo vero nome utente di Twitter. 😉

    Grazie per questo!

  13. Puoi anche selezionare il link del timestamp con una pseudo-classe:
    #twitter_update_list a:last-child

Aggiungi un commento

Siamo lieti che tu abbia scelto di lasciare un commento. Tieni presente che tutti i commenti sono moderati secondo la nostra normativa sulla privacy e tutti i link sono nofollow. NON utilizzare parole chiave nel campo del nome. Avviamo una conversazione personale e significativa.

Checklist per il lancio di WordPress

La Guida Definitiva per il Lancio di WordPress

Abbiamo raccolto tutti gli elementi essenziali della checklist per il lancio del tuo prossimo sito web WordPress in un comodo ebook.
Sì, Inviami l'eBook Gratuito!