Pubblicato il 19/04/09 - aggiornato il  | 19 commenti :

Come inserire dei widget solo nei post o solo in Homepage in Blogger.

Questo tipo di personalizzazione è necessario quando si ha a che fare con annunci pubblicitari tipo Adsense ma può essere utilizzato anche in altri casi.

Per fare un semplice esempio in questo blog è presente un annuncio pubblicitario sulla sidebar di destra che è visibile solo nei post ma non in Homepage perché altrimenti si supererebbero i tre annunci che sono il limite massimo. E’ inoltre presenti un insieme di link di colore blu subito sotto alla Barra dei menù che si può vedere solo nei post per la stessa ragione di prima.

image
image

In alcuni blog potrebbe per esempio essere necessario visualizzare un elemento solo nella home e non nei singoli post. Penso p.e. ad una scritta di benvenuto, ad un orologio digitale o a qualcosa di questo tipo.

Come mostrare un elemento solo nei post e nelle pagine di archivio ma non in Homepage -

Le pagine di archivio sono quelle che appaiono quando si clicca su un’etichetta o su un mese del blog per vedere i post relativi.

Seguendo la falsariga di questo post in cui ho spiegato come ottimizzare i guadagni di Adsense occorre avere un riferimento sul widget che vogliamo nascondere in Homepage. Quindi, se non ha un nome come spesso succede, possiamo inserire un titolo provvisorio per poi toglierlo successivamente. Nel caso di un annuncio pubblicitario mettiamo Pubblicità. Adesso andiamo in Layout>Modifica HTML (è sempre meglio salvare il modello completo). Senza espandere i modelli widget cercate quello che ha il titolo appena dato

image
si vede che è il widget numero 20 (id=’HTML20’). Adesso si espandono i modelli widget e si cerca tutto il codice del widget in questione che sarà del tipo mostrato nel seguente screenshot

image
ciascun widget inizia con <b:widget …. > e finisce con </b:widget> ma ha al suo interno almeno due righe di codice di questo tipo

<b:includable id='main'> e

</b:includable>

Per mostrarlo solo nei post occorre inserire altre due righe di codice secondo questo schema

<b:includable id='main'>

<b:if cond='data:blog.url != data:blog.homepageUrl'>

. . . . . . . . . . . . . . . .

</b:if>

</b:includable>

come mostrato in questo screenshot

image
in cui sono state evidenziate le due righe aggiunte. Adesso si Salva il modello e si può togliere il titolo che avevamo inserito per evitare confusione tra i vari widget.


Come mostrare un elemento solo in Homepage ma non nelle pagine di archivio e nei singoli post -

Il procedimento è lo stesso e il codice varia di poco.

Andiamo in Layout>Modifica HTML e visualizziamo il widget che ci interessa quindi, dopo averne appreso il numero, espandiamo i modelli widget. Ci troveremo di fronte ad un codice simile al precedente che dovrà essere così modificato

<b:includable id='main'>



<b:if cond='data:blog.url == data:blog.homepageUrl'>

. . . . . . . . . . . . . . . .

</b:if>

</b:includable>

dove le righe di codice aggiunte sono in grassetto e colorate di rosso.



Per vedere un elemento solo nelle pagine dei post ma non in Homepage e nelle pagine di archivio le due righe sono -


<b:if cond='data:blog.pageType == &quot;item&quot;'>

e

</b:if>

Per nascondere un elemento solo nelle pagine dei post ma visualizzarlo in tutti gli altri casi le due righe di codice sono le seguenti

<b:if cond='data:blog.pageType != &quot;item&quot;'>

e

</b:if>




19 commenti :

  1. ciao, finalmente sono riuscito a trovare quello che mi serviva, solamente che inserendo il codice per far visualizzare un widget solo nella home, ho come risultato lo stesso del primo esempio. (cioè sia nel primo che nel secondo caso, il widget in questione appare all'apertura di un post e nn alla home) mi sai aiutare?

    RispondiElimina
  2. Ciao,
    forse c'era un errore di copia-incolla. Con tutti 'sti codici è un vero casino;)).
    Prova adesso ho inserito altre casistiche :)

    RispondiElimina
  3. perfetto! ora funziona alla grande. grazie mille! sei stato molto gentile!

    RispondiElimina
  4. Penso di aver fatto qualche casino con questa modifica e adesso non visualizzo più il collegamento "Post più vecchio" nella homepage (nel post si vede tutto). E' possibile?

    RispondiElimina
  5. @federica
    ogni modello fa storia a sé e come scrivo sempre negli articoli è meglio salvare il template prima di fare delle modifiche. Il problema che hai mi sembra però strano rispetto alla personalizzazione che hai fatto.
    Comunque si tratta sempre di due righe di codice che puoi sempre togliere se danno fastidio a qualcos'altro.
    Ciao

    RispondiElimina
  6. Eh eh.. Non é cosí semplice.. Il modello lo salvo costantemente e anche se rispristino quello di un mese fa.. Il problema rimane... Proprio non capisco..

    RispondiElimina
  7. @Federica
    allora è un bug di Blogger che riguarda proprio il tuo blog. Non vedo altra spiegazione...

    RispondiElimina
  8. Utilissimo!! Era proprio ciò che cercavo!!

    RispondiElimina
  9. Fatto...
    Ma grazie a te ...quanto sto diventando brava?Ora quando vado a modificare il codice html riesco a capire quello che c'è scritto...
    GRAZIE

    RispondiElimina
  10. Parsifal ciao. Ma per nascondere un widget HTML/Java Sript aggiunto come gadget quindi non nell' HTML direttamente, il codice da usare qual'è?

    RispondiElimina
  11. Ciao Parsifal, ma per nascondere un widget HTML/JavaScript aggiunto come gadget, quindi non direttamente nell'HTML, il codice da usare qual'è?

    RispondiElimina
  12. @Vinnie
    Sempre lo stesso ma segui le istruzioni di questo post simile
    http://www.ideepercomputeredinternet.com/2010/11/come-mostrare-o-non-mostrare-widget-in.html
    I due tag condizionali vanno inseriti rispettivamente dopo la riga
    <b:includable id='main'>
    e prima dell'altra riga
    </b:includable>
    che sono sempre presenti nel widget. Bisogna solo cercare il suo ID nel modello.

    RispondiElimina
  13. scusa, ma nel mio blog esiste la riga (che vorrei apparisse ovunque ma non nella home), ,a non esistono successivamente gli script e

    RispondiElimina
  14. scusate, non avevo espanso i modelli widget. Però ho notato che al posto widget rimane uno spazio. può essere cancellato?

    RispondiElimina
    Risposte
    1. @PerlaValD'Orcia
      Ti ho già risposto nell'altro commento. Leggiti questo post
      http://www.ideepercomputeredinternet.com/2012/02/come-eliminare-i-rettangoli-che-si.html

      Elimina
  15. Ciao Ernesto! C'è un modo per nascondere determinati widget dalle sole pagine statiche?

    RispondiElimina
    Risposte
    1. @# Devi inserire i due tag condizionali che servono in questo caso
      http://www.ideepercomputeredinternet.com/2012/06/i-tag-condizionali-e-i-domini.html

      Elimina
  16. Ho impostato il mio blog in pagine che sono in realtà link a determinati tag presenti nei miei post.
    Quindi ho un menu in alto che divide tutti i miei post in argomenti (fotografia, poesia ecc..)
    Sarebbe possibile visualizzare un widget soltanto all'interno di una di queste divisioni?
    Io clicco "Fotografi" visualizzo tutti i post inerenti e, in più, un widget. Che vorrei fare apparire soltanto a quel punto..

    Grazie

    RispondiElimina
    Risposte
    1. @# Vuoi far apparire il widget nelle pagine del tipo
      http://nomeblog.blogspot.com/search/label/fotografi
      oppure in tutti i post che abbiano fotografi come etichetta?
      In ogni caso puoi risolvere usando i tag condizionali
      http://www.ideepercomputeredinternet.com/2013/03/tag-condizionali-blogger.html
      Nel primo caso usi la condizione
      <b:if cond='data:blog.url == "URL_PAGINA"'>
      dove al posto di URL_PAGINA inserisci l'indirizzo della pagina etichetta.
      Nel secondo caso usi il tag condizionale
      <b:if cond='data:blog.searchLabel == "NOME_ETICHETTA"'>
      dove al posto di NOME_ETICHETTA metti quella che ti pare. Il questo secondo caso il widget sarà visibile nei post con quella data etichetta.

      Elimina

Non inserire link cliccabili altrimenti il commento verrà eliminato. Metti la spunta a Inviami notifiche per essere avvertito via email di nuovi commenti. Se ti ho aiutato con il post o con le risposte ai commenti condividi su Facebook o su Twitter. Grazie.