Pubblicato il 19/06/15e aggiornato il

Come mostrare un widget solo in due o più pagine di Blogger.

Come utilizzare i nuovi operatori logici dei tag condizionali per mostrare widget, CSS o elementi solo in due, tre o più pagine di Blogger.
Gli utenti di Blogger conoscono la grande potenza dei tag condizionali che ci danno la possibilità di mostrare un widget, un menù, un CSS o anche solo un elemento del layout in un tipo particolare di pagine o anche in una singola pagina.

Recentemente le espressioni utilizzabili per impostare le condizioni sono state ampliate anche se non sempre è facile trovare la sintassi giusta per impostarle. Per esempio non sono riuscito a trovare una espressione per mostrare un widget solo nei post che abbiano una determinata etichetta. È stato invece piuttosto semplice trovarla per mostrare un elemento in due o più pagine date

Come probabilmente saprete se siete arrivati a leggere il terzo paragrafo del post, le condizioni sono formate da due righe, quella iniziale si incolla prima dell'elemento e che è variabile e quella finale che si incolla alla fine dell'elemento e che è sempre </b:if>. Per i widget queste condizioni vanno inserite  dopo la riga <b:includable id='main'> e prima della riga </b:includable>.

Per mostrare un widget o un elemento in una sola pagina si usa la condizione

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

Poniamo però oltre che in questa pagina volessimo mostrarlo anche in un'altra. Per risolvere si utilizza l'operatore or che è il classico operatore logico che rende vera una proposizione quando sia vera almeno una delle due condizioni che accomuna. In sostanza per mostrare un elemento solo in due pagine dovremo conoscerne i due URL e sostituire il .it con il .com se abbiamo un blog gratuito. Come detto la seconda riga è sempre la stessa e la prima riga diventa
 
<b:if cond='data:blog.url == "URL_PAGINA1" or data:blog.url == "URL_PAGINA2"'>

Ho usato questa condizione per mostrare il Responsive Menù solo nella pagina di Demo e nella corrispondente pagina di Demo per dispositivi mobili.
 

COME MOSTRARE UN WIDGET SOLO IN UNA PAGINA SU DESKTOP E MOBILE


Mi occuperò solo di indicare la prima riga della condizione perché come abbiamo visto la seconda è fissa ed è sempre la stessa. Inoltre considero come dato acquisito che  per inserire le condizioni in un widget bisogna conoscerne il suo ID e cercarlo nel template quindi le due condizioni vanno incollate subito dopo e subito prima delle due righe indicate in precedenza

Poniamo che l'indirizzo della pagina web in cui si voglia mostrare il widget sia

http://nomeblog.blogspot.com/2015/o6/titolo-post.html

e quindi lo stesso widget voglio mostrarlo anche nella corrispettiva pagina in versione mobile

http://nomeblog.blogspot.com/2015/o6/titolo-post.html?m=1

La prima riga del tag condizionale diventerà quindi
 
<b:if cond='data:blog.url == "http://nomeblog.blogspot.com/2015/o6/titolo-post.html" or data:blog.url == "http://nomeblog.blogspot.com/2015/o6/titolo-post.html?m=1"'>

che poi è quella che ho usato per la Demo del Menù ricordata sopra. Concludo con la sintassi che deve avere il tag condizionale per mostrare un elemento solo in tre pagine date
 
<b:if cond='data:blog.url == "URL_PAGINA1" or data:blog.url == "URL_PAGINA2" or data:blog.url == "URL_PAGINA3"'>

 

MOSTRARE UN WIDGET O UN ELEMENTO NELLA HOME E NEI POST


Come secondo esempio dell'operatore OR vediamo quale sia il tag condizionale di apertura della per mostrare un elemento, un CSS o un widget solo nei post e nella homepage

<b:if cond='data:blog.pageType == "item" or data:blog.url == data:blog.homepageUrl'>

Da considerare che anche le pagine statiche sono considerate come "item".




Nessun commento :

Posta un commento

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.