Sidebar-Navigation

Publiziert im Februar 2013

  für die WordPress-Version 3.3.1

Zusätzliche Rubrik-Navigation in der Sidebar


Um die Navigation in den sehr schnell umfangreich gewordenen Seiten auf on2r.eu zu vereinfachen und übersichtlicher zu gestalten, hatte ich im November 2010 die Idee, in der rechten Seitenleiste eine zusätzliche Navigation unterzubringen. Dort sollten alle Seiten einer Rubrik gelistet und anklickbar sein. Leider fand ich trotz intensiver Suche nur Anhaltspunkte, aber kein geeignetes Script.
Eine kleine Odyssee tat sich bei der Programmierung für mich auf, denn mit meinen verschütteten PHP-Kenntnissen mußte ich als WopdPress-Neuling detektivisch auseinanderklamüsern, in welcher Datei ich denn nun entsprechenden Code dafür unterbringen mußte. War das dann doch relativ schnell geschehen, mußte ich mühsam überprüfen, welche internen Zuweisungen relevant waren und mich zum ersten Mal mit dem Auslesen und Anzeigen von SQL-Datenbankinhalten auseinandersetzen.
Oft resignierte ich und etliche Flüche und Kopfkratzen begleiteten mein Vorhaben. Doch schließlich konnte ich voll Stolz mein gelungenes Konstrukt in die Sidebar einbinden.

Wichtiger Hinweis

Bevor jemand mit meiner Anleitung an seinen WordPress-Dateien rumdoktern möchte, sollte er bitte zuerst den Hinweis am Seitenende beachten, denn es gibt eine entsprechende Alternative als Widget, die da heißt: „Simple Section Navigation Widget

Hier nun die Anleitung zur Codeerweiterung

Die Datei \wp-content\themes\twentyten\sidebar.php mit einen Quelltext-Editor öffnen. Wird ein anderes Theme als „twentyten“ verwendet, findet sich die Datei im entsprechenden Theme-Ordner. In dieser Datei die folgende Codezeile suchen:

1
<div id="primary" class="widget-area" role="complementary">

Und durch diesen Codeabschnitt ersetzen (copy & paste):

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
<div id="primary" class="widget-area" role="complementary">

<?php
if ($page_id<>'0')
   {

/*************************************************************************************************
* Seitennavigation der Kindseiten - ANFANG ******************************************************
*************************************************************************************************/

    /**
    * ID des Seitentitels der Elternseite auslesen und als Klartext in $title speichern ************
    */
 
    $post_obj = $wp_query->get_queried_object();
    $post_ID = $post_obj->ID;
    $post_parent = $post_obj->post_parent;
    $title = get_the_title($post_parent);

    /**
    * Seitentitel der aktiven Kindseite anzeigen ****************************************************
    */
 
    echo '<h3 class="widget-title">Sie sind hier:<br></h3>';
    echo '<h1 style="padding-left: 2px; color:#000000;"><small><b><a href="'. get_page_link($post->post_parent) .'">'. $title .'</a></b></small></h1>

    <div id="seitennavigation">
    <ul style="list-style-type:none;">';

    if($post->post_parent)
        { // Die Seite ist "Kind-Seite"
        echo '<h3 class="widget-title">Themen:</h3>';
        wp_list_pages('sort_column=menu_order&title_li=&child_of='.$post->post_parent);
        }

    elseif(wp_list_pages("child_of=".$post->ID."&echo=0"))
        { // Die Seite hat "Kinder"
        echo '<h3 class="widget-title">Themen:</h3>';
        wp_list_pages('sort_column=menu_order&title_li=&child_of='.$post->ID);
        }

   }

else
    {
    echo '<h3 class="widget-title">Sie sind hier:<br></h3><small><h1 style="padding-left: 2px; color:#000000;"><b>Suchseite</b></h1></small><div id="seitennavigation"><ul style="list-style-type:none;">';
    }

echo '<br><div style="margin: -1.0em 0em 0em 0em;"></div>
<img src="http://on2r.eu/eigene_dateien/linie_freihand_strich_05.png">
<div style="margin: 0.5em 0em 0em 0em;"></div>';

?>

</h3></ul></div>

<?php
/*************************************************************************************************
 * Seitennavigation der Kindseiten - ENDE ********************************************************
 *************************************************************************************************/
?>

Die Datei speichern und anschließend auf den Server in den oben angegebenen Pfad hochladen, Homepage im Browser neu laden und freuen.

Notwendige Software

  1. Dateien können nicht auf dem Server bearbeitet werden. Dazu müssen sie auf dem heimischen Rechner vorliegen. Mit einem FTP-Programm können Dateien zwischen Server und eigenem PC hin- und her geschoben werden.
    FileZilla ist ein kostenloser Vertreter dieser Gattung: www.heise.de/download/filezilla.html
  2. Um PHP-Dateien zu editieren, ist ein Quelltext-Editor notwendig. Ein Textverarbeitungsprogramm wie z.B Microsoft Word ist dafür absolut ungeeignet! Notepad dagegen, der kleine Texteditor, der unter Windows seine Dienste anbietet, ist für diese Zwecke vollkommen ausreichend.
    Ich bevorzuge die komfortable Freeware Notepad++: www.heise.de/download/notepad.html

Offizielle Alternative als Widget

Als ich für diesen Artikel nochmal recherchiert hatte, war ich auf das Plugin „Simple Section Navigation Widget“ aufmerksam geworden. Nach der Installation stellt dieses Plugin ein Widget zur Verfügung, das die Unterseiten einer Rubrik ähnlich darstellt wie mein obiger Codeabschnitt.
Mit diesem Plugin hat sich bereits jemand befaßt: www.perun.net/…wordpress-kind-enkel-seiten-in-der-navigation
Für den interessierten WordPress-Nutzer ist dieses Plugin die bessere Alternative, wenn keine PHP-Kenntnisse vorhanden sind oder ein FTP-Zugang zum Server fehlt.

Lernhilfe

Meinen Codeabschnitt lasse ich trotz der Entdeckung des Plugins weiterhin zugänglich. Vielleicht kann jemand einen verwertbaren Nutzen aus ihm ziehen.


Zur Beachtung:
Ich verweise auf Programme, stelle diese jedoch nicht selbst her oder zur Verfügung. Ich übernehme keinerlei Verantwortung für deren Fehlerfreiheit und eventuelle Schäden, die durch die Nutzung auftreten könnten. Der Benutzer erklärt sich einverstanden, diese Programme auf eigene Gefahr hin zu nutzen.
Alle Angaben wurden mit Sorgfalt und nach bestem Wissen angefertigt, erheben jedoch keinerlei Anspruch auf Richtigkeit oder Vollständigkeit. Ich übernehme keinerlei Verantwortung für die Fehlerfreiheit obiger Angaben und eventuelle Schäden oder Kosten, die durch die Nutzung auftreten könnten. Der Benutzer erklärt sich einverstanden, die Angaben auf eigene Gefahr hin zu nutzen.

Sei bitte fair und schreib mir, was nicht gefällt!Sei bitte fair und schreib mir, was nicht gefällt!Geht so...Gefällt mir gut!Gefällt mir sehr gut! (No Ratings Yet)
Loading...

Schreibe einen Kommentar

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


5 + 5 =