domingo, 8 de junio de 2008

PONER ENTRADAS RELACIONADAS CON UN POST

Si os habeis fijado, en muchos blogs, debajo de un post aparecen debajo un listado con entradas relacionadas con ese artículo. ¿Quereis ponerlo así también? Pues hala....manos a la obra....

1º Nos vamos,para no variar, a las tripillas de nuestro blog, quicir, a la plantilla y expandimos los artilugios marcando la casilla que está a la derecha y en la parte superior de la plantilla. Tenemos que buscar la etiqueta ]]>. y debajo de ella añadiremos el código que os voy a poner.

Hemos de colocarlo exactamente ahí ya que para que funcione correctamente, debe estar antes que cualquier otro script que hayamos colocado:


<script type='text/javascript'>
//<![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 cuantosPosts = 0;
var r = Math.floor((relatedTitles.length - 1) * Math.random());
var i = 0;
var dirURL = document.URL;
document.write('<ul>');
while (i < relatedTitles.length && i < 20) {
if (relatedUrls[r] != dirURL) {
document.write('<li><a href="' + relatedUrls[r] + '" title="Post relacionado: '
+ relatedTitles[r] + '">' + relatedTitles[r] + '</a></li>');
}
if (r < relatedTitles.length - 1) {
r++;
} else {
r = 0;
}
i++;
cuantosPosts++;
if (cuantosPosts == 3) {
break;
}
}
document.write('</ul>');
}

//]]>
</script>



2º Buscamos ahora esta parte del código:


<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>



Y la sustituimos por esta otra:


<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>



Donde dice max-results=10 es donde podemos controlar la cantidad máxima de posts que se mostrarán, podemos cambiar "10" por el valor que nos interese.

3º Buscamos esta parte del código:


<p class='post-footer-line post-footer-line-3'/>



Y añadimos este nuevo código:

<div class='post-footer-line post-footer-line-4'>
<b:if cond='data:blog.pageType == "item"'>
<script type="text/javascript">
removeRelatedDuplicates();
printRelatedLabels();
</script>
</b:if>
</div>



Si queremos aumentar la cantidad de posts a mostrar, cambiamos el valor en esta línea del script if (cuantosPosts == 3) { poniendo en vez de 3, el número que queramos.

4º Guardamos los cambios y ya está.

NOTA: ya podeis tener cuidado cuando hagais este cambio....no la lieis y os quedeis sin plantilla, así que antes de nada....haced una copia de seguridad, a mí no me vayais a morder un ojo.

Este truco pertenece al blog Vagabundia

22 comentarios:

Anónimo dijo...

buy viagra online without rx buy viagra online next day delivery - generic viagra online pharmacy

Anónimo dijo...

generic viagra viagra online purchase us - buy viagra online with paypal

Anónimo dijo...

generic viagra viagra questions - viagra online boots

Anónimo dijo...

buy soma soma san diego box office - cheap soma online no prescription

Anónimo dijo...

buy soma soma perfect drug - buy cheap soma online

Anónimo dijo...

buy cialis online cialis 100mg. online - order generic cialis online no prescription

Anónimo dijo...

no prescription xanax do xanax show up drug test - xanax drug test pass

Anónimo dijo...

xanax online xanax withdrawal .25 - xanax zoloft side effects

Anónimo dijo...

generic xanax xanax 2mg too much - xanax with alcohol high

Anónimo dijo...

xanax online xanax bars and drinking - xanax 1 mg . description

Anónimo dijo...

cialis online generic cialis vs brand cialis - generic cialis mastercard

Anónimo dijo...

http://landvoicelearning.com/#23561 chewing 100mg tramadol - legal buy tramadol online usa

Anónimo dijo...

buy tramadol buy online texas tramadol - buy tramadol 50 mg online

Anónimo dijo...

buy tramadol online tramadol for dogs and side effects - 50mg tramadol high dose

Anónimo dijo...

buy tramadol buy tramadol online usa cheap - tramadol dosage australia

Anónimo dijo...

klonopin cost klonopin and alcohol interaction - dosage of klonopin for anxiety

Anónimo dijo...

http://landvoicelearning.com/#63987 tramadol for dogs reactions - tramadol hcl for dogs

Anónimo dijo...

buy klonopin online klonopin causing anxiety - possible buy klonopin online

Anónimo dijo...

http://landvoicelearning.com/#97734 buy tramadol in europe - buy tramadol egypt

Anónimo dijo...

klonopin without prescriptions highest safe dosage klonopin - klonopin withdrawal using valium

Anónimo dijo...

buy klonopin online klonopin 2mg side effects - klonopin withdrawal + chills

Anónimo dijo...

buy carisoprodol c o d what is soma carisoprodol used for - order vicodin online no prescription