Post relacionados en blogger

martes, 6 de mayo de 2008

Uno de los consejos más prácticos para mantener a los lectores en nuestro blog se basa en ofrecer contenidos relacionados sobre el tema que están leyendo. La forma más sencilla de hacerlo consiste en añadir al final del escrito una lista de artículos categorizados con una misma etiqueta. Una correcta gestión de las categorías permitirá al lector contar en su consulta con un resumen de todo lo que se ha escrito en el blog sobre el tema. Se facilita así la navegación por el blog y se evita que pierda el tiempo en búsquedas que tienen mucha probabilidad de acabar fuera de nuestro sitio.

El procedimiento para desarrollar esta extensión de blogger no es demasiado complicada si se siguen los siguientes pasos:

1. Asegurarse de que se tiene habilitado la opción 'Permitir feeds del blog' en Configuración>Feed del sitio.
2. Copia de seguridad: En la pestaña 'Diseño', se selecciona 'Edición de HTML' y se pulsa sobre el enlace 'Descargar plantilla completa'.
3. En la misma sección, seleccionar la casilla 'Expandir plantillas de artilugios'
4. Buscar el siguiente código: <data:post.body/>
Puede aparecer también con las etiquetas de párrafo: <p><data:post.body/></p>
5. Copiar a continuación el código siguiente:


    <!-- Artículos relacionados -->

    <b:if cond='data:blog.pageType == "item"'>
    <div class='similiar'>
    <!-- *************http://clawder.blogspot.com*****May,2008************** -->

    <div class='widget-content'>
    <h4>Artículos relacionados</h4>
    <div id='data2007'/><br/>

    <script type='text/javascript'>

    var homeUrl3 = "<data:blog.homepageUrl/>";
    var maxNumberOfPostsPerLabel = 4; //nº post
    var maxNumberOfLabels = 10; // nº etiquetas

    function listEntries10(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(homeUrl3.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('data2007').appendChild(div1);
    }
    }
    }
    function search10(query, label) {

    var script = document.createElement('script');
    script.setAttribute('src', query + 'feeds/posts/default/-/'
    + label +
    '?alt=json-in-script&callback=listEntries10');
    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) {
    search10(homeUrl3, textLabel);
    numLabel++;
    }
    }
    </b:loop>
    </b:loop>
    </script>
    </div>

    </div>
    </b:if>

    <!-- Fin artículos relacionados -->
6. Salvar la plantilla y comprobar los cambios.

Si todo ha ido bien sólo quedará dar unos pequeños retoques para dejarlo perfecto. En mi caso he limitado el número de artículos por categoría; he eliminado el nombre de la categoría, pues no se entiende muy bien con las tildes; y por último, he suprimido los enlaces a las páginas de los desarrolladores, dado que me parece excesivo que todos mis artículos tengan un enlace a sus blogs.

Artículos relacionados


Clawder por em@il Clawder Feed Twitter

0 comentarios: