Breadcrumbs generatepress

Añadir migas de pan sin plugin a Generatepress

Una de las muchas ventajas que tiene utilizar GeneratePress es que puedes situar las migas de pan donde quieras utilizando el módulo de Elements. Lo que se debería hacer modificando las plantillas de WordPress, con unos pocos clics y de forma muy fácil puedes hacerlo si utilizas GeneratePress.

Recuerda que tienes un video tutorial donde ya contaba cómo colocar migas de pan si utilizas Yoast Seo.

En este caso se trata de implementar las migas de pan utilizando un poco de código. Así pues, para empezar tenemos que insertar el siguiente código al functions.php de nuestro child theme, en un plugin de funciones, o en mi caso utilizando codesnippets.

Aquí el código para insertar migas de pan con subpáginas

<?php
function wordpress_breadcrumbs() {
$delimiter = '&raquo;';
$name = 'Home'; //text for the 'Home' link
$currentBefore = '<span class="current">';
$currentAfter = '</span>';
if ( !is_home() && !is_front_page() || is_paged() ) {
echo '<div id="crumbs">';
global $post;
$home = get_bloginfo('url');
echo '<a href="' . $home . '">' . $name . '</a> ' . $delimiter . ' ';
if ( is_category() ) {
global $wp_query;
$cat_obj = $wp_query->get_queried_object();
$thisCat = $cat_obj->term_id;
$thisCat = get_category($thisCat);
$parentCat = get_category($thisCat->parent);
if ($thisCat->parent != 0) echo(get_category_parents($parentCat, TRUE, ' ' . $delimiter . ' '));
echo $currentBefore . 'Archive by category &#39;';
single_cat_title();
echo '&#39;' . $currentAfter;
} elseif ( is_day() ) {
echo '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a> ' . $delimiter . ' ';
echo '<a href="' . get_month_link(get_the_time('Y'),get_the_time('m')) . '">' . get_the_time('F') . '</a> ' . $delimiter . ' ';
echo $currentBefore . get_the_time('d') . $currentAfter;
} elseif ( is_month() ) {
echo '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a> ' . $delimiter . ' ';
echo $currentBefore . get_the_time('F') . $currentAfter;
} elseif ( is_year() ) {
echo $currentBefore . get_the_time('Y') . $currentAfter;
} elseif ( is_single() ) {
$cat = get_the_category(); $cat = $cat[0];
echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
echo $currentBefore;
the_title();
echo $currentAfter;
} elseif ( is_page() && !$post->post_parent ) {
echo $currentBefore;
the_title();
echo $currentAfter;
} elseif ( is_page() && $post->post_parent ) {
$parent_id = $post->post_parent;
$breadcrumbs = array();
while ($parent_id) {
$page = get_page($parent_id);
$breadcrumbs[] = '<a href="' . get_permalink($page->ID) . '">' . get_the_title($page->ID) . '</a>';
$parent_id = $page->post_parent;
}
$breadcrumbs = array_reverse($breadcrumbs);
foreach ($breadcrumbs as $crumb) echo $crumb . ' ' . $delimiter . ' ';
echo $currentBefore;
the_title();
echo $currentAfter;
} elseif ( is_search() ) {
echo $currentBefore . 'Search results for &#39;' . get_search_query() . '&#39;' . $currentAfter;
} elseif ( is_tag() ) {
echo $currentBefore . 'Posts tagged &#39;';
single_tag_title();
echo '&#39;' . $currentAfter;
} elseif ( is_author() ) {
global $author;
$userdata = get_userdata($author);
echo $currentBefore . 'Articles posted by ' . $userdata->display_name . $currentAfter;
} elseif ( is_404() ) {
echo $currentBefore . 'Error 404' . $currentAfter;
}
if ( get_query_var('paged') ) {
if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ' (';
echo __('Page') . ' ' . get_query_var('paged');
if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ')';
}
echo '</div>';
}
}
?>

Es cierto que hay códigos mucho más básicos, por ejemplo el que enseña Ayuda WordPress, pero el problema es que no muestra el camino si tienes subpáginas creadas. En mi caso he utilizado el código extraído de Sanjai.

Una vez implementado el código es el momento de mostrarlo en la web. Y por eso utilizamos el bloque de Elements de GeneratePress. Sólo tenemos que crear un nuevo Elements de hook, pegar el siguiente código y marcar la casilla de ejecutar php.

<?php if (function_exists('wordpress_breadcrumbs')) wordpress_breadcrumbs(); ?>

Después sólo tendrás que decidir dos cosas súper chulas y que hacen que GeneratePress sea uno de los tema más flexibles y cómodos para trabajar:

  • Donde quieres ubicar las migas de pan dentro de la web. Antes del título, depués del título, antes o después de la caja del contenido… Es decir, tú decides donde quieres que aparezca las migas de pan en relación a su contexto.
  • Y luego deberás decidir en qué páginas, entradas, archivos…. quieres que se muestre las migas de pan. Por ejemplo puedes hacer las siguientes configuraciones.
    • En toda la web pero excluir la home
    • Solo en las entrada y no en las página.
    • O cualquier otra cosa a través de la pestaña de display rules.

Y si todavía no te ha quedado claro aquí os dejo el video tutorial de cómo mostrar las migas de pan a GeneratePress sin plugins.

Deja un comentario

Identifícate