Blogger: Posts relacionados (2)
La ubicación depende de cada caso pero, por ejemplo, podemos agregarla como un nuevo bloque dentro del pie de página de los posts. Estos, se identifican con el siguiente código:
<p class='post-footer-line post-footer-line-1'>
.......
</p>
<p class='post-footer-line post-footer-line-1'> </p>
<p class='post-footer-line post-footer-line-2'> </p>
<p class='post-footer-line post-footer-line-3'> </p>
El primero, contiene los datos el autor, el segundo las etiquetas y el tercero no tiene uso y es el que suele emplearse para agregar marcadores sociales y otro tipo de detalles personales.
Busquemos:
<p class='post-footer-line post-footer-line-3'>
.......
</p>
o bien
<p class='post-footer-line post-footer-line-3'/>
en el primer caso, agregamos el script justo debajo de </p> en el segundo caso, en la línea inmediata ya que quiere decir que no hay contenido.
El código es el siguiente:
<b:if cond='data:blog.pageType == "item"'>
<div class='post-footer-line post-footer-line-4'>
<h2>Posts Relacionados</h2>
<div id='post-relacionados'/>
<script type='text/javascript'>
var inicioBlog = "<data:blog.homepageUrl/>";
var maxNumberOfPostsPerLabel = 4;
var maxNumberOfLabels = 10;
maxNumberOfPostsPerLabel = 100;
maxNumberOfLabels = 3;
function listarEntradas(json) {
var ul = document.createElement('ul');
var maxPosts = (json.feed.entry.length <= maxNumberOfPostsPerLabel) ?
json.feed.entry.length : maxNumberOfPostsPerLabel;
for (var i = 0; i < maxPosts; i++) {
var entry = json.feed.entry[i];
var alturl;
for (var k = 0; k < entry.link.length; k++) {
if (entry.link[k].rel == 'alternate') {
alturl = entry.link[k].href;
break;
}
}
var li = document.createElement('li');
var a = document.createElement('a');
a.href = alturl;
if(a.href!=location.href) {
var txt = document.createTextNode(entry.title.$t);
a.appendChild(txt);
li.appendChild(a);
ul.appendChild(li);
}
}
for (var l = 0; l < json.feed.link.length; l++) {
if (json.feed.link[l].rel == 'alternate') {
var raw = json.feed.link[l].href;
var label = raw.substr(inicioBlog.length+13);
var k;
for (k=0; k<20; k++) label = label.replace("%20", " ");
var txt = document.createTextNode(label);
var h = document.createElement('b');
h.appendChild(txt);
var div1 = document.createElement('div');
div1.appendChild(h);
div1.appendChild(ul);
document.getElementById('post-relacionados').appendChild(div1);
}
}
}
function buscarEntradas(query, label) {
var script = document.createElement('script');
script.setAttribute('src', query + 'feeds/posts/default/-/'
+ label +
'?alt=json-in-script&callback=listarEntradas');
script.setAttribute('type', 'text/javascript');
document.documentElement.firstChild.appendChild(script);
}
var labelArray = new Array();
var numLabel = 0;
<b:loop values='data:posts' var='post'>
<b:loop values='data:post.labels' var='label'>
textLabel = "<data:label.name/>";
var test = 0;
for (var i = 0; i < labelArray.length; i++)
if (labelArray[i] == textLabel) test = 1;
if (test == 0) {
labelArray.push(textLabel);
var maxLabels = (labelArray.length < = maxNumberOfLabels) ?
labelArray.length : maxNumberOfLabels;
if (numLabel < maxLabels) {
buscarEntradas(inicioBlog, textLabel);
numLabel++;
}
}
</b:loop>
</b:loop>
</script>
</div>
</b:if>



























15 comentarios:
Hola!!!
Quiero probar este truco en mi plantilla pero me da un error:
No se ha podido analizar su plantilla, porque no está bien formada. Asegúrese de que todos los elementos XML se han cerrado correctamente.
Lo que hago es poner el código debajo de:
p class='post-footer-line post-footer-line-3'/
La segunda forma de hacerlo. Y me sale despues el mensaje de error cuando guardo la plantilla.
¿Dónde está el error?
Gracias.
Gracias por el aviso Neo, había un error de transcripción y ya está solucionado. Disculpa el problema.
En general, esto es causado porque los scripts poseen el signo < (menor) par comparar cosas y eso es malinterpretado por Blogger.
Hay que reemplazarlos por <. Ya lo he hecho y lo he probado pegándolo en otra plantilla sin que diera errores.
Una pregunta, cómo deduce que los post están relacionados? Por las palabras del título?
Bueno, ya lo agregue a mi Blog y no da error. Lo que pasa es que no veo nada de post relacionados, me explico:
1º- Si estoy en la página principal de mi blog no se ve nada de Post Relacionados en la entrada. Hay que pinchar en el titulo de la entrada para ver al pie Post Relacionados.
2º- Si lo hago de la segunda forma, si veo el título al pie de la entrada que pone Posts Relacionados, pero no hay nada más.
¿No me debería aparecer ahí, los post relacionados con el contenido en cuestión de la entrada? A mí no me aparece nada de nada.
Si tienes tiempo te metes en mi blog y le hechas un vistazo:
http://neocinetv.blogspot.com/
Gracias.
A raíz de lo que le ha ocurrido a Gem@,te he descubierto y voy a linkarte porque me parece muy interesante este blog.
Por otra parte, me encanta tu biografía !!!
Muchos besos y Luz !!!
Lili;)
Uf! Solo pasaba para agradecerte los email de ayer, no pongo mi sitio, porque no acostumbro a dejar comentarios...un tema que debo resolver. Mi anonimato es exesivo.
Dos cosas:
1-Me quede mudo con la entrevista realizada en Café de por Medio, gracias por haberlla compartido y por responder mis email ;)
2-No puedo creer que solo entraba a escribir agradecimientos y comentarios sobre la entrevista...Y caí justo aquí. Este post es un 10. He hecho lo mismo varias veces, de manera muy desprolija y no tenía ningún sentido comentarselo a la blogosfera. Creo que voy a cambiar mis codigos y luego mandar a los lectores a donde corresponde.
Si bien tu edad no coincide con la de mi padre, ya que él es bastante mayor, por momentos me has hecho leer sus palabras.
Sigá jugando, del otro lado hay alguien haciendo lo mismo.
Ah! sobre el link que me enviaste ayer para poner el menú desplegable, lamento decirte que mis conocimientos no me han dejado avanzar, sobre todo porque no explican las cosas como aquí. Ya lo resolvere, pero por el momento todos los sitios que veo que tienen el codigo que corresponde, lo ponen en JavaScript y oculto.
Me voy a jugar y quizás a trabajr jugando.
Saludos.
Fede.
Don Atealgo:
La relación está basada exclusivamente en las etiquetas que coloquemos en los posts. Para decirlo de otro modo, estos hacks muestran una lista de posts con las mismas etiquetas.
Petitabruixa:
Bienvenida y gracias por el comentario :)
Neo:
El hack sólo funciona en las páginas individuales, eso es normal. Hasta donde lego a ver en tu blog, el script está funcionando. Una posibilidad es que no tengas habilitados los feeds del blog CONFIGURACION / FEEDS (no debe estar en none). Cualquier cosa, envíame un mail y vemos de qué se trata. Igualmente, hoy publicaré uno más que es el que ya está funcionando en este blog y que, a mi gusto, es el más flexible.
Fede:
Gracias por el esfuerzo de "comentar" :D
Hola he intentado poner este scrpit, parece que lo tengo todo bien y el feed esta habilitado y aunque acabo de empezar el blog ya tengo al menos 2 post por etiqueta.
¿podrias mirar porque falla? jmiur
http://elmundodebole.blogspot.com/
Por otro lado ciertamente es desesperante comentar en Blooger, aunque tu lo has solucionado bastante con el popup.
Conocí el blog ayer y estoy alucinado de la cantidad de info que dipones para el personal y eso que no he salio todavia de la categoria Blooger.
Buen trabajo, sino te importa te mandaré un email sino consigo solucionarlo.
Un saludo
Lo estoy viendo. Así a simple vista, todo parece estar bien, el script toma los datos correctamente pero no parece buscarlos o escribirlos.
Habría que ver la plantilla para intentar descubrir el fallo. Si quieres mandarme un mail trataré de buscar el problema.
Gracias pero en ninguna de mis plantillas encuentros p class='post-footer-line post-footer-line-3' ni 1 ni 2 , expandi artilugios ,use ctrl f , probe en diferentes blogs y no encuentro el motivo pk yo no tengo esos codigos. te agradeceria me dieras una ayudita.saludos
Necesitaría ver tu sitio online, sino, es imposible.
Hola Jmiur
A mi tb me pasa lo mismo: muestra el "post relacionados" pero no muestra ningun post.
¿Puede ser que los feeds estén direccionados a feedburner?
mi blog de pruebas: http://almacigaxxi.blogspot.com/
Angel, lo que veo online parecería ser correcto así que imagino que debe haber algún pequeño error que no logro detectar así.
Si quieres, puedes enviarme la plantilla por mail y reviso el código real.
No es un problema de Feedburner, eso es seguro.
Muchas Gracias, JMiur
Con el script corregido si me ha funcionado.
Serían cosas de las comillas o los corchetes, o algo así.
YA funciona todo. Muchas gracias de nuevo
Me alegro que se haya resuelto, Angel.
¿Quiere dejar un comentario?
Utilice el formulario adjunto para comunicarse.
Enlaces