Pubblicato il 28/03/14 - aggiornato il  | 13 commenti :

Come creare un widget per Blogger che mostri i post di due o più etichette determinate.

Come creare dei gadget per Blogger che mostrino gli articoli con almeno due o più etichette determinate.
Moltissimi widget per Blogger usano quelli che sono chiamati feed per acquisire gli elementi da mostrare in un box della sidebar o in una pagina statica. A ciascun blog è associato un URL dei feed riguardo a quelli che sono gli articoli, i commenti e le etichette. Consultando il post che ho pubblicato sul tema dei feed, dato l'indirizzo di un blog su Blogger, si può facilmente ricavare l'URL dei feed degli articoli, l'URL dei feed dei commenti, l'URL dei feed dei commenti a un determinato post e l'URL dei feed di una etichetta.

Quando abbiamo il codice di un widget che utilizza i feed se ne può cambiare l'URL per mostrare gli altri elementi. Per esempio usando il codice degli Ultimi Articoli, modificando l'URL dei feed possiamo realizzare un widget che mostra gli ultimi post di una data etichetta.

L'URL dei feed dei post di un blog generico è il seguente

http://nomedelblog.blogspot.com/feeds/posts/default

mentre l'URL dei feed di una singola etichetta è quest'altro

http://nomedelblog.blogspot.com/feeds/posts/default/-/nomeetichetta 

Dove al posto di nomeblog e nomeetichetta vanno inseriti quelli relativi al nostro sito. In un commento mi è stato chiesto se si possano mostrare non i post relativi a una singola etichetta ma solo i post che abbiano contemporaneamente due etichette in comune.  Questo in effetti è possibile farlo creando un URL dei feed dei post che abbiano più etichette. Facciamo degli esempi pratici relativi a questo sito per rendere le cose più chiare (almeno spero)

http://www.ideepercomputeredinternet.com/feeds/posts/default/-/widget   mostra tutti i post con etichetta widget
http://www.ideepercomputeredinternet.com/feeds/posts/default/blogger mostra  tutti i post con etichetta blogger
http://www.ideepercomputeredinternet.com/feeds/posts/default/-/blogger/widget mostra tutti i post che abbiano contemporaneamente etichetta blogger e widget
http://www.ideepercomputeredinternet.com/feeds/posts/default/-/widget/blogger  mostra tutti i post che abbiano contemporaneamente etichetta blogger e widget
http://www.ideepercomputeredinternet.com/feeds/posts/default/-/blogger/widget/modello
mostra tutti i post che abbiano contemporaneamente etichetta blogger, widget e modello
http://www.ideepercomputeredinternet.com/feeds/posts/default/-/widget/modello/blogger mostra tutti i post che abbiano contemporaneamente etichetta blogger, widget e modello
In definitiva l'URL generico dei feed dei post con etichetta1 e etichetta2 sarà il seguente
http://nomeblog.blogspot.com/feeds/posts/default/-/etichetta1/etichetta2

Con lo stesso meccanismo possiamo aggiungere anche etichetta3 e così via. Usando una terminologia insiemistica o logico matematica possiamo dire che è possibile dalle condizioni A e B creare una condizione A ˄ B ma non A ˅ B. Nel senso che non sarà possibile creare un URL dei feed dei post che abbiano almeno una delle due date etichette mentre lo sarà per i post che le abbiano entrambe le etichette.

Passando all'atto pratico in relazione al post su come mostrare tutti i post di una data etichetta in un widget o in una pagina statica se volessimo mostrare solo gli articoli che abbiano almeno due etichette date, oltre alle altre personalizzazioni, dobbiamo modificare il codice in modo che la riga

/feeds/posts/default/-/etichetta

venga sostituita con quest'altra

/feeds/posts/default/-/etichetta1/etichetta2

Ricordo che si tratta di una proprietà commutativa nel senso che si può indifferentemente sostituire anche con /feeds/posts/default/-/etichetta2/etichetta1 come del resto è mostrato negli esempi

demo-widget
   
Lo screenshot di demo si riferisce alla mappa dei post che hanno le etichette blogger e widget.


13 commenti :

  1. Spettacolo! Mi sono accorto però che alcune etichette sono date, per cui mi ritrovo 2013/14 come etichetta. Il carattere "/" crea problemi, quindi:
    1. devo modificare tutte le etichette oppure
    2. c'è un modo per farlo interpretare come carattere e non come divisore tra le due etichette?

    Non so se i rendo conto di quello che dico...

    RispondiElimina
    Risposte
    1. mi rispondo da solo: http://www.ideepercomputeredinternet.com/2013/03/how-to-manage-tag-blogger.html

      Elimina
  2. ma non sarà possibile creare un widget di un pagina che mostri gli ultimi post che hanno almeno una delle due date etichette? grazie

    RispondiElimina
    Risposte
    1. No. Il perché è spiegato nel post con una similitudine matematica
      @#

      Elimina
  3. Domanda che nasce da una mia difficoltà: è possibile fare la stessa cosa usando un post e non una pagina?

    RispondiElimina
  4. Risposte
    1. strano, sbaglierò qualcosa io. Ma di fatto copio il codice dalla pagina (e lì funge) e la metto in un post, ma qui non funziona più.
      Andrò a rivedermi come copio e incollo. Grazie, nel frattempo!

      Elimina
  5. Pubblica senza andare su Scrivi direttamente da HTML e vedrai che funziona
    @#

    RispondiElimina
    Risposte
    1. Infatti funziona se non entro in scrivi! GRAZIE!

      Elimina
    2. Pardon. Al momento il post e la pagina (che avevo conservato identica come test A-B) contenenti il codice non mi restituiscono l'elenco. Risulta anche a te?

      Elimina
    3. Non posso testare di continuo :)
      In questi casi quando si aggiorna bisogna sempre controllare che il codice non sia cambiato oltre a pubblicare da HTML
      @#

      Elimina
    4. Lo immagino che non puoi testare tutto! A vlte mi vado a rileggere post di qualche anno e ci trovo commeni recentissimi, quindi è un lavoraccio...
      Ma questo post è molto recente e nel rispetto del tuo lavoro ritengo utile segnalarti che qualcosa forse è cambiato.
      Sto verificando se qualche mio cambiamento sul blog possa aver influito, ma non mi sembra.
      Grazie del tuo impegno!

      Elimina
    5. smanettando ho scoperto che il problema è chrome. Con firefox funziona benissimo, con chrome non funziona più ( e sempre con chrome ora non funziona più il testo scorrevole). Spero di essere stato d'aiuto a qualcuno.
      Adesso cerco di capire perchè non funziona più con chrome. Ciao!

      Elimina

Non inserire link cliccabili altrimenti il commento verrà eliminato. Metti la spunta a Inviami notifiche per essere avvertito via email di nuovi commenti.
Info sulla Privacy