WordPress: Brotkrumen (Breadcrumbnavigation) selbst gebacken

Breadcrumb Navigation

In vielen Blogs sieht man sie, die kleine und unauffällige “Brotkrumen”-Spur, welche einem den Weg durch die Navigation der Website zur aktuellen Seite anzeigt. Die Rede ist von der Breadcrumbnavigation. Also die typische “Du bist hier: Start > Kategorie > Artikel”- Navigation. Plugins gibt es dafür wie Sand am Meer aber nicht immer ist ein solches notwendig, denn es geht auch mit einem kleinen und kurzen Eingriff in die functions.php des verwendeten Themes.

Die Änderungen

Also mach ich es kurz und schmerzlos, das muss da rein:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/**
 * Adding breadcrumbnavigation to wordpress.
 */

if(!function_exists('my_breadcrumb')) {
    function my_breadcrumb() {
        global $post;

        $var_sHtmlBreadcrumbStart =  __('You are here: ', MY_TEXTDOMAIN);
        $var_sHomeUrl = (get_option('page_for_posts')) ? get_permalink(get_option('page_for_posts')) : home_url();
        $var_sHomeTitle = (get_option('page_for_posts')) ? get_the_title(get_option('page_for_posts')) : get_the_title(home_url());

        if(is_front_page()) {
            return;
        } // END if(is_front_page())

        if(!is_home()) {
            $var_sHtmlBreadcrumb = '<a href="' . $var_sHomeUrl . '">' . $var_sHomeTitle . '</a> » ';

            if(is_category() || is_single()) {
                if(is_single()) {
                    $var_sHtmlBreadcrumb .= get_the_title();
                } // END if(is_single())
            } elseif(is_page()) {
                $var_sParentID  = $post->post_parent;
                $array_Breadcrumbs = array();

                while($var_sParentID) {
                    $page = get_page($var_sParentID);
                    $array_Breadcrumbs[] = '<a href="' . get_permalink($page->ID) . '" title="' . get_the_title($page->ID) . '">' . get_the_title($page->ID) . '</a>';
                    $var_sParentID  = $page->post_parent;
                } // END while($var_sParentID)

                $array_Breadcrumbs = array_reverse($array_Breadcrumbs);

                foreach ((array) $array_Breadcrumbs as $var_sCrumb) {
                    $var_sParentPage .= $var_sCrumb . ' &raquo; ';
                }

                $var_sHtmlBreadcrumb = $var_sParentPage . get_the_title();
            } elseif(is_tag()) {
                single_tag_title();
            } elseif(is_day()) {
                $var_sHtmlBreadcrumb .= __('Archive for ', MY_TEXTDOMAIN) . get_the_time('F jS, Y');
            } elseif(is_month()) {
                $var_sHtmlBreadcrumb .= __('Archive for ', MY_TEXTDOMAIN) . get_the_time('F, Y');
            } elseif(is_year()) {
                $var_sHtmlBreadcrumb .= __('Archive for ', MY_TEXTDOMAIN) . get_the_time('Y');
            } elseif(is_author()) {
                $var_sHtmlBreadcrumb .= __('Authors Archive', MY_TEXTDOMAIN);
            } elseif(isset($_REQUEST['paged']) && !empty($_REQUEST['paged'])) {
                $var_sHtmlBreadcrumb .= __('Blog Archive', MY_TEXTDOMAIN);
            } elseif(is_search()) {
                $var_sHtmlBreadcrumb .= __('Search', MY_TEXTDOMAIN);
            } elseif(is_404()) {
                $var_sHtmlBreadcrumb .= __('404 Error &raquo Not found', MY_TEXTDOMAIN);
            } // END if (is_category() || is_single())
        } else {
            $var_sHtmlBreadcrumb = '<a href="' . $var_sHomeUrl . '">' . $var_sHomeTitle . '</a>';
        } // END if (!is_home())

        return '<div class="my-breadcrumb">' . $var_sHtmlBreadcrumbStart . $var_sHtmlBreadcrumb . '</div>';
    } // END function my_breadcrumb()
} // END if(!function_exists('my_breadcrumb'))

Der Aufruf

Damit ist die Navigation natürlich noch nicht angezeigt, denn das muss erst noch. Dazu wird an jeder Stelle wo diese Navigation angezeigt werden soll im Template folgender Aufruf hinterlegt:

1
if(function_exists('my_breadcrumb')) {echo my_breadcrumb();}

Viel Spaß Smilie: :-)

Werbung

Professionelle WordPress Themes aus Deutschland - DER PRiNZ

Über H.-Peter Pfeufer

Ich bin Webentwickler/ -programmierer aus Leidenschaft, WordPressbegeistert und ab und an auch mal ein netter Mensch.
Vor allen schreibe ich über alles was mit den Themen Webentwicklung/ -programmierung und WordPress zu tun hat. Nebenher auch mal einige Gedanken zu allgemeineren Themen.

Kategorie(n): WordPress
Tags: , , ,
Setze ein Lesezeichen auf den Permalink.

4 Antworten auf WordPress: Brotkrumen (Breadcrumbnavigation) selbst gebacken

    Chaosweib sagt:

    Ist das wirklich von Nöten? Ich meine der Besucher ist ja nicht doof, der sieht ja wo er ist. Und so schwierig ist die Navigation durch einen Blog ja nun wirklich nicht, zumal oben das Menü angezeigt wird!?

      • Merten sagt:

        Ich halte die Brotkrumen für absolutwichtig, da der User sicher nicht dumm ist aber die Navigation durch gerade sehr tiefe Strukturen stark vereinfacht wird. Ich selbst nutze dieses Navigationselement immer wenn ich es finde bzw. ich benutze es auch. Es halt aus meiner Sicht einen festen Platz eingenommen.

      • Film-Fan sagt:

        Bleibt das erhalten wenn man das theme updated?

      Hinterlasse eine Antwort

      Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

      *

       

      Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>