La procedura è un po' complessa bisogna mettere le mani su varie righe del codice!! Quindi segui attentamente le mie istruzioni:
Recati su layout/modifica Html e cercata il tag <head> e immediatamente dopo inserisci questo codice:
<script type="text/javascript">Esattamente come ti mostro nella figura:
//<![CDATA[
var relatedTitles = new Array();
var relatedTitlesNum = 0;
var relatedUrls = new Array();
function related_results_labels(json) {
for (var i = 0; i < json.feed.entry.length; i++) {
var entry = json.feed.entry[i];
relatedTitles[relatedTitlesNum] = entry.title.$t;
for (var k = 0; k < entry.link.length; k++) {
if (entry.link[k].rel == 'alternate') {
relatedUrls[relatedTitlesNum] = entry.link[k].href;
relatedTitlesNum++;
break;
}
}
}
}
function removeRelatedDuplicates() {
var tmp = new Array(0);
var tmp2 = new Array(0);
for(var i = 0; i < relatedUrls.length; i++) {
if(!contains(tmp, relatedUrls[i])) {
tmp.length += 1;
tmp[tmp.length - 1] = relatedUrls[i];
tmp2.length += 1;
tmp2[tmp2.length - 1] = relatedTitles[i];
}
}
relatedTitles = tmp2;
relatedUrls = tmp;
}
function contains(a, e) {
for(var j = 0; j < a.length; j++) if (a[j]==e) return true;
return false;
}
function printRelatedLabels() {
var r = Math.floor((relatedTitles.length - 1) * Math.random());
var i = 0;
document.write('<ul>');
while (i < relatedTitles.length && i < 20) {
document.write('<li><a href="' + relatedUrls[r] + '">' + relatedTitles[r] + '</a></li>');
if (r < relatedTitles.length - 1) {
r++;
} else {
r = 0;
}
i++;
}
document.write('</ul>');
}
//]]>
</script>
Salva il modello, ora espandi i modelli widget e cerca questo codice:
<b:if cond='data:post.labels'>
<data:postLabelsLabel/>
<b:loop values='data:post.labels' var='label'>
<a expr:href='data:label.url' rel='tag'><data:label.name/></a><b:if cond='data:label.isLast != "true"'>,</b:if>
</b:loop>
</b:if>
E sostituiscilo con questo:
Per i più smaliziati, si tratta di aggiungere solo le tre righe in grassetto.
<b:if cond='data:post.labels'>
<data:postLabelsLabel/>
<b:loop values='data:post.labels' var='label'>
<a expr:href='data:label.url' rel='tag'><data:label.name/></a><b:if cond='data:label.isLast != "true"'>,</b:if>
<b:if cond='data:blog.pageType == "item"'>
<script expr:src='"/feeds/posts/default/-/" + data:label.name + "?alt=json-in-script&callback=related_results_labels&max-results=10"' type='text/javascript'/>
</b:if>
</b:loop>
</b:if>
Salva il tutto.
Adesso vai su layout/ elementi pagina e crea un nuovo elemento Html, dagli come titolo "Articoli correlati" e all'interno scrivi questo codice:
<script type="text/javascript">
removeRelatedDuplicates();
printRelatedLabels();
</script>
Poi, attraverso il drag & drop, posizionalo sotto l'elemento "Post sul blog", (io, al posto di "Articoli correlati", ho intitolato il widget "Articoli interessanti"), così come ti mostro in questo screenshoot:
Adesso, l'ultimo passo, forse il più difficile... presta molta attenzione, torna su layout/modifica Html ed espandi i modelli widget. Cerca questo codice, e aggiungici i caratteri in grassetto (il risultato deve essere uguale a quello che vedi nel box):
<b:widget id='HTML13' locked='false' title='Articoli correlati' type='HTML'>
<b:includable id='main'>
<b:if cond='data:blog.pageType == "item"'>
<!-- only display title if it's non-empty -->
<b:if cond='data:title != ""'>
<h2 class='title'><data:title/></h2>
</b:if>
<div class='widget-content'>
<data:content/>
</div>
<b:include name='quickedit'/>
</b:if>
</b:includable>
</b:widget>
Nota: id='Html13' è il numero scalare del widget, quindi varia da blog a blog. Se hai ancora delle difficoltà, dai un'occhiata a questa schermata dove ti ho evidenziato i posti dove vanno inseriti i codici:
Guida tradotta da PurpleMoggy's Blog
Importante: prima di procedere ad ogni modifica, salva una copia del tuo template attuale!!
35 commenti:
Io uso questo metodo da un bel pò,ma il problema mi si presenta quando voglio scrivere un post corto e quindi vidualizzarlo per intero,perche col metodo di cancellare spanclass fullpost all'editor quando si crea un post,non funziona,esce comunque il link continua,e questo genera confusine,c'è un modo per ovviare il problema
Grazie
Grazie mille, era proprio ciò che mi serviva!!!
Appena ho tempo scrivo un post con un link al tuo!
Ciao
Complimenti per il tuo blog.....
@tuttovolume: a cosa ti riferisci? Ai post espandibili? Nel tutorial che ho scritto, http://risorse-blogger.blogspot.com/2008/01/post-espandibili-in-blogger.html
L'ho detto chiaramente, basta cancellare:
Qui il sommario
<span id="fullpost">
Qui il resto del post
</span>
@axel: grazie a te!
@nuvoletta: grazie!
prego...
scusate l'ignoranza, ma non ho capito a cosa serve qst procedimento....cioè cosa sono gli articoli correlati...?
@lizzie: gli articoli correlati, è l'omonimo widget che puoi leggere in fondo ad ogni post (o in fondo ai commenti nel mio caso), in pratica è una procedura automatica che suggerisce al lettore articoli simili a quello che stà leggendo, e che quindi potrebbero interessargli!!
ah....ho capito....grazie...
Yurj, cos'ho sbagliato? vedo il messaggio "Leggi anche" ma poi non ci sono articli correlati...
@milano ingressi: forse hai sbagliato qualche passaggio! Può capitare di perdere qualche pezzettino di codice (specialmente il primo che è molto lungo). Ti consiglio di ripetere tutto da capo e con calma!!
Fammi sapere se facendo con più calma riesci!! ;)
grazie mille per il tutorial!
Volevo sapere però con che criterio vengono scelti gli articoli correlati.
@dadobonsai: vengo scelti in base alle etichette (o label)!
Ci ho provato, ma non ci sono riuscito. Ho seguito tutte le tue istruzioni, ma gli articoli correlati non sono apparsi.
Tutto a posto, poi ho visto che gli articoli correlati mi appaiono nella pagina di ogni singolo
post (sotto al post: sono tutti gli articoli con la stessa etichetta, o categoria).
Invece nella home page ci sono solo gli articoli più
recenti (senza gli articoli correlati sotto i post).
E’ normale che sia così o ho sbagliato qualcosa?
Grazie mille!
@raffaele: ottimo!! :D
Tranquillizzati, è normale che sia così... ;)
ma non c'è un modo per farlo comparire subito dopo il post, prima dei commenti?
Grazie
@boby: una volta ci ho provato, ma non ci sono riuscito!! :(
Mi dovrò impegnare di più per trovare una souzione!!
niente ci ho provato, controllato il codice ma rimane lo spazio bianco, come se non riuscisse a trovare nulla di correlato!
errata corrige...ci sono riuscito ma ho capito che se copio pari pari la prima parte di codice me la incolla senza spazi e non so il motivo ma non funziona...ho dovuto modificarla a mano, inserire tutti gli spazi!
grazie mille, il tuo blog è una bibbia.
@yurj: forse ho trovato un codice, però su un blog mi funziona, mentre su un altro no, devo rincontrallare tutta la procedura.
se non mi dà più problemi te lo passo o ti indico la fonte...
Ottimo!!! ha funzionato perfettamente, adesso però mi tocca riorganizzare le etichette per sfruttarlo al meglio :)
Ma com'è che capito sempre sul tuo blog quando cerco qualcosa per migliorare il mio? :D
Grazie e Complimenti!
Vorrei chiederti una cosa... Ho seguito tutta la procedura, ma c'è un piccolo particolare esteticamente non molto bello: in home page si visualizza la scritta "Articoli correlati", come posso farla visualizzare nelle pagine dei post???
http://tanarossonera.blogspot.com/
Grazie
Vorrei chiederti una cosa... Ho seguito tutta la procedura, ma c'è un piccolo particolare esteticamente non molto bello: in home page si visualizza la scritta "Articoli correlati", come posso farla visualizzare SOLO nelle pagine dei post???
http://tanarossonera.blogspot.com/
Grazie
davvero un ottima segnalazione, ora provo anche a pacioccarci un pochino (per vedere se lo capisco pure ... ehh mi complico sempre la vita loool)
ciao e grazie mille :)
@Daniele: prova a racchiudere il codice in una if del tipo
<b:if cond='data:blog.pageType == "item"'>
.....
</b:if>
naturalmente puoi anche sfruttare un 'else' per dare un nuovo significato a quello spazio.
ciao!
ma non corrispondono all'etichette ,dato che non capisco come fare correlare ,un tag musica con uno immagine
@alexandro: Si, la modifica mette in relazione i post che le etichette simili.
Quindi se vuoi correlare un post di musica e uno immagine, devi usare la stessa etichetta oppure etichettare i due post con un'etichetta uguale, es. li etichetti entrambi con: musica, foto
Opuure crei un'etichetta specifica, es:
foto musicali
Qui potete trovare una versione modificata di questa soluzione che vi permetterà di inserire l'elenco subito sotto il post.
Ciao,volevo ringraziarti per l'aiuto.
Ho inserito tutto e sembra funzionare alla perfezione.
Grazieeeeeeeeeee
Ciao
ciao, innanzitutto grazie...
poi ho una domanda: ho copiato il codice ed è tutto a posto, ma i link mi vengono di un colore che è coperto da quello del mio blog... come posso fare??
http://nurixtime.blogspot.com/
mh, io non trovo nel mio HTML questo codice...
data:post.laberls
e non so come continuare dopo il primo passo
Ciao!! Ho dei problemi a mettere l'ultimo codice in grassetto...come si fa?!? Grazie!
Ciao....come si fa a diminuire il numero di post per etichetta? grazie
Grazie, sei stato chiarissimo.
http://tiny.cc/y3c5v
grazie per la guida! spero di riuscirci! :)
Posta un commento