sábado, 16 de marzo de 2013

Ocultar entradas con determinada etiqueta en el inicio de Blogger

A petición de +Danilo Cisneros, he creado un tutorial con el cual conseguiremos ocultar entradas con cierta etiqueta en el inicio de nuestro blog, de manera que éstas aparezcan únicamente al ingresar a la categoría correspondiente.

Esto puede ser útil para filtrar algunas entradas y/u organizar nuestra página de inicio, o bien para lo que desees. También puedes hacer algo "a la inversa", es decir, mostrar las entradas con la etiqueta X y ocultar el resto.

blogger, etiquetas, pagina inicio, homepage

El tutorial:

Para comprobar la funcionalidad del tutorial, he creado un demo en el cual se ocultan todas las entradas etiquetadas como Blogger, las demás se muestran en el índice y en las categorías normalmente.

Opción 1: Ocultar entradas con determinada etiqueta:
Con los artilugios expandidos, en nuestro editor HTML buscaremos el siguiente código (Búscalo por su inicio y su cierre):

<b:includable id='post' var='post'>

<!-- Acá va una gran cantidad de código el cual no tocaremos -->

</b:includable>

Cuando hayas encontrado este código, incluye el código siguiente de esta manera:
<b:includable id='post' var='post'>

<!-- Inicio del código-->
<b:loop values='data:post.labels' var='label'>
<b:if cond='data:blog.url == data:blog.homepageUrl'>
<b:if cond='data:label.name == &quot;Nombre de la etiqueta&quot;'>
<b:else/>

<!-- Acá va el código que iba dentro del <b:includable> -->

</b:if>
<b:else/>

<!-- Acá va el código que iba dentro del <b:includable>, otra vez -->
</b:if>
</b:loop>
<!-- Fin del código -->

</b:includable>

En donde aparece "Nombre de la etiqueta" escribe exactamente el nombre de cual quieras excluir en el inicio del blog, una vez hecho esto previsualiza los cambios, y si consigues observar el resultado puedes guardar tu plantilla.

Importante: Para que todo siga funcionando correctamente dentro de tu blog, es necesario que el código que estaba dentro del <b:includable> lo agregues también en el espacio que he marcado.

Opción 2: Mostrar únicamente entradas con determinada etiqueta:

Para invertir la operación, bastaría con buscar la segunda condicional dentro del código (La que se encuentra dentro del <b:loop>:
<b:if cond='data:label.name == "Nombre de la etiqueta"'>

Y en donde aparece == deberás dejarlo como !=, quedando de la siguiente manera:
<b:if cond='data:label.name != "Nombre de la etiqueta"'>

Guardas los cambios y listo.

Opción 3: Ocultar y hacer coincidir la última etiqueta:

A petición de +Emilio Luna he actualizado esta entrada con el código para hacer coincidir la última etiqueta de los posts y así ocultarlos:
<b:includable id='post' var='post'>
<!-- Inicio del código-->
<b:loop values='data:post.labels' var='label'>
    <b:if cond='data:blog.url == data:blog.homepageUrl'>
        <b:if cond='data:label.isLast == &quot;true&quot;'>
            <b:if cond='data:label.name == &quot;Nombre de la etiqueta&quot;'>
            <b:else/>
                <!-- Acá va el código que iba dentro del <b:includable> -->
            </b:if>
        </b:if>
    <b:else/>
        <!-- Acá va el código que iba dentro del <b:includable>, otra vez -->
    </b:if>
</b:loop>
<!-- Fin del código -->
</b:includable>

El procedimiento para invertir la función es el mismo que el del método 2.

No hay comentarios:

Publicar un comentario