Y Bueno, esto me pudo, extraño montones el contacto con la blogoesfera, asi que estoy impulsando un nuevo proyecto, por lo que este es un aviso, KEY TRUCOS no va mas, ahora todos a KEY TOTAL Magazine, a full a partir del 8/4/2011. Los espero !!!! .... (PROBLEMAS CON VARIOS LINKS, SCRIPTS ETC. PACIENCIA) ^_^
PREMIOS
Visiten Garilandia !!! • Importante !!! Leer sobre VillaRochel ^_^
Aportes varios CARATULWORLDZilfarionTutoriales Wed • Cabecera de OLOMAN

Entradas Relacionadas

. 1.4.08
  • Agregar a Technorati
  • Agregar a Del.icio.us
  • Agregar a DiggIt!
  • Agregar a Yahoo!
  • Agregar a Google
  • Agregar a Meneame
  • Agregar a Furl
  • Agregar a Reddit
  • Agregar a Magnolia
  • Agregar a Blinklist
  • Agregar a Blogmarks
  • Enviar a Ayuda Blogs

E ncontré en Blogmundi una manera de poder incluir a cada entrada, una lista de otras entradas que estén relacionadas.
Me gustó tanto la idea, que ya lo estoy probando. Pienso que es una buena manera de que los visitantes se interesen o puedan encontrar más entradas, sin necesidad de estar navegando a ciegas.
El único tema que no me termina de convencer, es que el truco, para que funcione, lo que hace es relacionar las entradas según las etiquetas, por las relaciones pueden no tener mucho que ver, si la entrada tiene varias etiquetas.

Es importante que siempre antes que hagas un cambio en la plantilla guardes una copia, por si el truco no te funciona o no te gusta puedas volver a lo que tenías.
Nada es infalible...^_^


Manos a la obra....
Tenés que ir a Diseño/Edición Html/Expandir artilugios y copias el siguiente código antes de </head>

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

(Lo que está en negrita lo podés cambiar por la cantidad de temas relacionados que querés que aparezcan, yo por ejemplo lo puse en 5.)


Una vez esto es recomendable guardar, y seguir con el truco.
Lo que debes hacer ahora es buscar esta parte en la plantilla:

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


Una vez que lo ubicaste, lo debes cambiar por esto:

<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&amp;callback=related_results_labels&amp;max-results=10"' type='text/javascript'/>
</b:if>
</b:loop>
</b:if>


Nuevamente guardamos para que no se pierda nada.
Ahora vas a Elementos de página/Agregar nuevo elemento Html
Como título le puedes poner lo que quieras, ej: "Relacionados", pero no te olvides ponerle título porque luego lo usaremos.
Lo que debes pegar allí es lo siguiente:

<script type="text/javascript">
removeRelatedDuplicates();
printRelatedLabels();
</script>


Lo puedes ubicar en donde mejor te quede, por ejemplo yo lo he pegado al final de cada post.

Ya casi queda pronto, lo último que debemos hacer es ir nuevamente a Diseño/edición Html/expandir artilugios, y debes ubicar el nuevo elemento Html que acabamos de agregar, la manera más fácil es hacerlo mediante el buscador de tu explorador (ej: Ctrl F (Firefox) Ctrl B (IE)), poniendo el título del elemento.
Una vez que lo ubicaste debes agregar lo que está en negrita:

<b:widget id='HTML13' locked='false' title='Relacionados' type='HTML'><b:includable id='main'>
<b:if cond='data:blog.pageType == "item"'>
Añade esta línea
<!– 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>
Añade esta línea
</b:includable></b:widget>

Ya está pronto ^_^
Solo quiero destacar que este truco solo aparece cuando estamos dentro de alguna entrada, no aparece cuando estamos en la página principal.

Seguir Leyendo...[+/-]