WordPress: Crear Breadcrumbs (migas de pan) sin plugins

junio 29, 2015 | Wordpress

Los breadcrumbs o migas de pan en español es una buena practica cuando se necesita brindar al usuario su ubicación en tu sitio web, muchos grandes sitios lo usan y de echo has visto uno. si aun no te queda claro te muestro una imagen para que la recuerdes.

breadcrumbs wordpress

Ahora si? bueno, haremos eso pero en wordpress, vamos a recuperar la ubicación por páginas, post y categorías, manos al código.

agregamos el siguiente código en tu archivo functions.php del tu theme.


<?php
function the_breadcrumbs() {
    if (!is_home()) {
        echo '<a href="/">Home</a> » ';
        if (is_category() || is_single() || is_page()) {
            if(is_category()){
                $category = get_the_category();
                echo $category[0]->cat_name;
            }else{
                the_category(' - ');
            }if(is_page()) {
                echo the_title();
            }if (is_single()) {
                echo " » ";
                the_title();
            }
        }
    }
}
?>

funciones wordpress: para que logres entender la explicación de «Explicando el código» te resumo el uso de las funciones «Conditional Tag» de wordpress a continuación:
is_home(): comprueba si se muestra la página inicial de tu theme (index) esta devuelve un booleado TRUE o FALSE, mas info.

is_category(): es igual que el is_home() solo que comprueba la categoría mostrada, mas info.

is_page(): es igual que el is_home() y is_category() solo que comprueba si una pagina esta siendo mostrada, mas info.

is_single(): comprueba si algún post esta siendo mostrado, puede recibir parámetros, mas info.

get_the_category: revuelve una matriz de objetos, un objeto para cada categoría asignada. Esta etiqueta se puede utilizar fuera de The Loop pasando un ID post como parámetro, mas info.

the_title(): este devuelve el titulo del post, categoría o pagina actual.

Explicando el código:
creamos una function llamada the_breadcrumbs dentro de ella un if donde la condición es !is_home dentro lo primero que hago es imprimir el texto «Home» con una echo para que este sea el inicio de nuestro breadcrumbs, ahora dentro otro if con la condición is_category() || is_single() || is_page si una de las condiciones se cumple asignare otros if dependiendo de cual se cumpla, por ejemplo:

if(is_category()){
    $category = get_the_category();
    echo $category[0]->cat_name;
    }else{
        the_category(' - ');
    }

si la condición is_category() se cumple voy a obtener la categoría con get_the_category y la guardo en una variable $category luego imprimo con echo $category[0]->cat_name el nombre de la categoría pero si is_category() no se cumple ejecutará el else donde imprimo con the_category(' - ') este le asigna un enlace para que el usuario sea llevado a la categoría correspondiente, y así sucesivamente con el resto de condiciones.

llamando al breadcrumbs en nuestro theme:

<?php the_breadcrumbs(); ?>

si deseas que aparezca solo en los post tienes que llamarlo en el archivo single.php pero también puedes llamando en las páginas en page.php y category.php. mi recomendación personal es que los llames en todas las partes donde deseas que aparezca el breadcrumbs.

cualquier duda, consulta o aporte puedes hacerlo en los comentarios.

Relacionados