Criar um Breadcrumbs (menu migalhas) sem plug-in no WordPress


Postado em 11 de novembro de 2011 por | Categorias: Úteis | 4 Comentários » | Comentar


Para criar breadcrumbs wordpress em seu site copie e cole o código abaixo no arquivo functions.php do seu tema:

////////////////////////////////////////////////////////////////////////
// BREADCRUMBS
////////////////////////////////////////////////////////////////////////

function dimox_breadcrumbs() {

$delimiter = '»';
$home = 'Início'; // text for the 'Home' link
$before = '<span>'; // tag before the current crumb
$after = '</span>'; // tag after the current crumb

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

echo '<div id="crumbs">';

global $post;
$homeLink = get_bloginfo('url');
echo '<a href="' . $homeLink . '" rel="home" title="' . $home . '">' . $home . '</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 $before . 'Archive by category "' . single_cat_title('', false) . '"' . $after;

} elseif ( is_day() ) {
echo '<a href="' . get_year_link(get_the_time('Y')) . '" rel="bookmark" title="'.get_the_time('Y').'">' . get_the_time('Y') . '</a> ' . $delimiter . ' ';
echo '<a href="' . get_month_link(get_the_time('Y'),get_the_time('m')) . '" rel="bookmark" title="'.get_the_time('F').'">' . get_the_time('F') . '</a> ' . $delimiter . ' ';
echo $before . get_the_time('d') . $after;

} elseif ( is_month() ) {
echo '<a href="' . get_year_link(get_the_time('Y')) . '" rel="bookmark" title="'.get_the_time('Y').'">' . get_the_time('Y') . '</a> ' . $delimiter . ' ';
echo $before . get_the_time('F') . $after;

} elseif ( is_year() ) {
echo $before . get_the_time('Y') . $after;

} elseif ( is_single() && !is_attachment() ) {
if ( get_post_type() != 'post' ) {
$post_type = get_post_type_object(get_post_type());
$slug = $post_type->rewrite;
echo '<a href="' . $homeLink . '/' . $slug['slug'] . '/" rel="bookmark" title="'.$post_type->labels->singular_name.'">' . $post_type->labels->singular_name . '</a> ' . $delimiter . ' ';
echo $before . get_the_title() . $after;
} else {
$cat = get_the_category(); $cat = $cat[0];
echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
echo $before . get_the_title() . $after;
}

} elseif ( !is_single() && !is_page() && get_post_type() != 'post' && !is_404() ) {
$post_type = get_post_type_object(get_post_type());
echo $before . $post_type->labels->singular_name . $after;

} elseif ( is_attachment() ) {
$parent = get_post($post->post_parent);
$cat = get_the_category($parent->ID); $cat = $cat[0];
echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
echo '<a href="' . get_permalink($parent) . '" rel="bookmark" title="'.$parent->post_title.'">' . $parent->post_title . '</a> ' . $delimiter . ' ';
echo $before . get_the_title() . $after;

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

} 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) . '" rel="bookmark" title="'.get_the_title($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 $before . get_the_title() . $after;

} elseif ( is_search() ) {
echo $before . 'Search results for "' . get_search_query() . '"' . $after;

} elseif ( is_tag() ) {
echo $before . 'Posts tagged "' . single_tag_title('', false) . '"' . $after;

} elseif ( is_author() ) {
global $author;
$userdata = get_userdata($author);
echo $before . 'Articles posted by ' . $userdata->display_name . $after;

} elseif ( is_404() ) {
echo $before . 'Error 404' . $after;
}

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>';

}
} // end dimox_breadcrumbs()

Para exibir o menu Breadcrumbie no site, coloque o código abaixo nos arquivos do tema no qual deseja exibir o menu. Normalmente coloco nos arquivos page.php, single.php e outros.

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

Fonte:
http://dimox.net/wordpress-pagination-without-a-plugin-wp-pagenavi-alternative/


4 comentários para “Criar um Breadcrumbs (menu migalhas) sem plug-in no WordPress”

  1. 1 Romulo as 10:56 em 17 de maio de 2012:

    Parabens, otima a dica!
    Porem, nas “pages” não aparece o seu devido título, o que aparece é o nome de uma postagem que eu fiz em uma determinada categoria… Ajuda por favor!

  2. 2 Rô! as 6:42 em 24 de janeiro de 2013:

    Obrigada, funcionou bem!

    Agora tentando descobrir como arrumar acentuação.

  3. 3 Rô! as 6:43 em 24 de janeiro de 2013:

    Oxi, que burra! Resolvido, não era a renderização, era no código mesmo, só reescrever início.

  4. 4 ricardo as 17:28 em 16 de julho de 2013:

    Parabéns pelo site, ótimas informações no Scriptcase contem algumas informações sobre.


Deixe um comentário

Categorias

Links

Tags

Autor do post bloginfo() Caminho do tema Campos Personalizados Categorias Codificação UTF8 Contac form 7 CSS Custom fields Custom Post Types data Dividir string explode() Formatação de datas Formatação de Hora get_ get_option() get_page_template() get_the_terms get_the_title() Hora IMG is_single() Janelas Links Lista de Categorias Lista de Posts Lista de ùltimos posts location.href Paginação Post_name Query_posts register_sidebar Sidebar the_author_nickname() the_category() the_tags() the_time() Titulo da página UFT8_encode UTF8 UTF8_decode Widgets wp_list_categories() âncoras

Copyright © 2017  |   W-Pedia – Wikipedia Wordpress BR  |  produzido por Henderson C. Torres