Como Fazer Breadcrumb sem plugin

Continuando esta série de scripts que irão deixar nossos templates mais leves e rápidos, hoje mostrarei a todos os visitantes do Escola Sites como fazer Breadcrumb sem plugin, com mais este código em seus templates, todos teremos um plugin a menos e mais recursos disponíveis. Lembro que o ranqueamento das páginas feito pelos mecanismos de busca leva em consideração o tempo de carregamento das páginas

O que é breadcrumb?

O breadcrumb, também conhecido como caminho de rato ou migalha de pão, é uma técnica de navegação usada em sistemas de informação para informar ao usuário a sua localização dentro deste sistema. Em sites, o nosso caso, é muito importante deixar o usuário informado quais canais o levaram até aquela página, nunca o deixando “perdido” dentro do site, além de ser uma ótima técnica de link building.

Sobre a Série

Está série que estamos propondo aqui no Escola Sites possui o objetivo de otimizar os sites, ao ponto de levá-los a ter mais velocidade na abertura dos mesmos, deixando apenas o que realmente é complexo na mão de um plugin. Pois estes plugins além de executar muitas vezes códigos desnecessários, fazem conexão com o banco para funcionar, o deixando nosso site ainda mais lento.

O código

{code type=php}
function migalha_escolasites() {

$separador = ‘»’;
$inicio = ‘Início’; // Texto para o link de Início
$antes = ‘‘;
$depois = ‘
‘;

if ( !is_home() && !is_front_page() || is_paged() ) {

echo ‘

‘;

global $post;
$linkInicio = get_bloginfo(‘url’);

echo ” . $inicio . ‘ ‘ . $separador . ‘ ‘;

if ( is_category() ) {
global $wp_query;
$cat_obj = $wp_query->get_queried_object();
$thisCat = $cat_obj->term_id;
$thisCat = get_category($thisCat);
$categoriaMae = get_category($thisCat->parent);
if ($thisCat->parent != 0) echo(get_category_parents($categoriaMae, TRUE, ‘ ‘ . $separador . ‘ ‘));
echo $antes . ‘Artigos da Categoria “‘ . single_cat_title(”, false) . ‘”‘ . $depois;

} elseif ( is_day() ) {
echo ” . get_the_time(‘Y’) . ‘ ‘ . $separador . ‘ ‘;
echo ” . get_the_time(‘F’) . ‘ ‘ . $separador . ‘ ‘;
echo $antes . get_the_time(‘d’) . $depois;

} elseif ( is_month() ) {
echo ” . get_the_time(‘Y’) . ‘ ‘ . $separador . ‘ ‘;
echo $antes . get_the_time(‘F’) . $depois;

} elseif ( is_year() ) {
echo $antes . get_the_time(‘Y’) . $depois;

} elseif ( is_single() && !is_attachment() ) {
if ( get_post_type() != ‘post’ ) {
$post_type = get_post_type_object(get_post_type());
$slug = $post_type->rewrite;
echo ” . $post_type->labels->singular_name . ‘ ‘ . $separador . ‘ ‘;
echo $antes . get_the_title() . $depois;
} else {
$cat = get_the_category(); $cat = $cat[0];
echo get_category_parents($cat, TRUE, ‘ ‘ . $separador . ‘ ‘);
echo $antes . get_the_title() . $depois;
}

} elseif ( !is_single() && !is_page() && get_post_type() != ‘post’ && !is_404() ) {
$post_type = get_post_type_object(get_post_type());
echo $antes . $post_type->labels->singular_name . $depois;

} elseif ( is_attachment() ) {
$parent = get_post($post->post_parent);
$cat = get_the_category($parent->ID); $cat = $cat[0];
echo get_category_parents($cat, TRUE, ‘ ‘ . $separador . ‘ ‘);
echo ” . $parent->post_title . ‘ ‘ . $separador . ‘ ‘;
echo $antes . get_the_title() . $depois;

} elseif ( is_page() && !$post->post_parent ) {
echo $antes . get_the_title() . $depois;

} elseif ( is_page() && $post->post_parent ) {
$parent_id = $post->post_parent;
$breadcrumbs = array();
while ($parent_id) {
$page = get_page($parent_id);
$breadcrumbs[] = ” . get_the_title($page->ID) . ”;
$parent_id = $page->post_parent;
}
$breadcrumbs = array_reverse($breadcrumbs);
foreach ($breadcrumbs as $crumb) echo $crumb . ‘ ‘ . $separador . ‘ ‘;
echo $antes . get_the_title() . $depois;

} elseif ( is_search() ) {
echo $antes . ‘Pesquisa pelo termo “‘ . get_search_query() . ‘”‘ . $depois;

} elseif ( is_tag() ) {
echo $antes . ‘Artigos com a etiqueta “‘ . single_tag_title(”, false) . ‘”‘ . $depois;

} elseif ( is_author() ) {
global $author;
$userdata = get_userdata($author);
echo $antes . ‘Artigos publicados por ‘ . $userdata->display_name . $depois;

} elseif ( is_404() ) {
echo $antes . ‘Página não encontrada!’ . $depois;
}

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 ‘

‘;

}
}
{/code}

Todo o código deve ser colocado no arquivo functions.php, para que seja usado de qualquer lugar do template.

Para incluir o breadcrumb em seu template, seja no single.php ou no category.php, use:

{code type=php}

if (function_exists(‘migalha_escola’)) migalha_escola();

{/code}

E Você possui um breadcrumb em seu template? Como você faz?

Gostou? Melhorou o desempenho de seu site? Tem alguma dúvida? Comente e não deixe de compartilhar?

Receba as melhores dicas para criar um negócio digital lucrativo

Jair Rebello

Empreendedor e Nômade Digital. Dedica grande parte do seu tempo para criar soluções como o Plugin SqueezeWP e o Template ConversionWP Premium que ajudam dezenas de milhares de empreendedores a desenvolverem seus negócios.

Website: http://www.rebello.blog.br