1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

Kategorien in der Menuleiste verlinken

Dieses Thema im Forum "Konfiguration" wurde erstellt von ddklog, 6. Oktober 2008.

  1. ddklog

    ddklog Active Member

    Registriert seit:
    6. Oktober 2008
    Beiträge:
    28
    Zustimmungen:
    0
    Hallo,

    ich stricke gerade an meinem Blog und modifiziere das Theme (BranfordMagazine) und habe folgendes Problem: Ich habe in der Menuleiste den Punkt "Kategorien" eingefügt und darunter gehen die einzelnen Kategorien auf. Wenn ich jetzt auf die Kategorie "Top-Thema" klicke hätte ich gerne, dass die Seite angezeigt wird mit allen Beitragen aus dieser Kategorie. Aber wie das geht weiß ich nicht.
    Weiß das jemand?
    Danke
     
  2. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Wie hast du die Kategorien eingefügt?

    Template Tags/wp list categories WordPress Codex
     
  3. ddklog

    ddklog Active Member

    Registriert seit:
    6. Oktober 2008
    Beiträge:
    28
    Zustimmungen:
    0
    Die Kategorien habe ich ganz normal über WP >> "Verwalten" >> "Kategorien" angelegt.
    Die Menuleiste habe ich über "Schreiben" >> "Seite" angelegt, wobei ich dann ein beliebiges Template ausgesucht habe und die einzelnen Kategorien der übergeordneten Seite "Kategorien" zugeordnet habe. (ich vermute ja auch, dass ich ein eigenes Template bauen muss in dem dann der Befehl stehen muss. Aber da ich kaum php kann, ist das schwierig.
     
  4. ddklog

    ddklog Active Member

    Registriert seit:
    6. Oktober 2008
    Beiträge:
    28
    Zustimmungen:
    0
    Mit dem Link kann ich leider nur bedingt etwas anfangen:
    1. In welches Dokument an welcher Stelle kommt dieser Code hin? (<?php wp_list_categories('arguments'); ?> )
    1. Der zweite Teil (Examples) muss ja auch irgendwo hin.
    Tut mir leid, aber ich bin da noch ein Greenhorn und ab einem gewissen Level bin ich einfach überfragt.
    Danke
     
  5. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Seiten != Kategorien
    Das will ich nur mal festgehalten haben ;) Dein problem ist also eher im Konzept zu suchen. Das wird dir aber sicher das Theme ein wenig so vorgeben.

    Du könntest entweder den Theme-Header (d.h. da wo die "Seiten" ausgegeben werden) die Kategorieliste mit o.g. Befehl ausgeben. Das wäre das einfachste. Die Frage ist nur, ob dass das Theme so erlaubt, oder ob man da größere Änderungen vornehmen müsste.

    Die andere Variante ist, die Kategorien auf gleichnamigen Seiten auszugeben. Schau dazu mal in diesen Thread rein:
    http://forum.wordpress-deutschland.org/konfiguration/39890-auf-seiten-artikel-zeigen.html
     
  6. ddklog

    ddklog Active Member

    Registriert seit:
    6. Oktober 2008
    Beiträge:
    28
    Zustimmungen:
    0
    Ich glaube, mein Problem ist viel einfacher: In der Sidebar besitzte ich bereits eine Liste mit einen Kategorien. Wenn ich die anklicke, komme ich auf eine Seite, auf der alle Artikel dieser Kategorie (mit Headline, Teaser, Autor, etc.) untereinander stehen. In der Menuleiste soll im Endeffekt die selbe Liste noch mal stehen. Mit dem Unterschied, dass Kategorie der Hauptmenu-Punkt ist und die einzelnen Kategorien die "Children" (so wird das wohl genannt) sind. So gesehen bin ich auch auf den Gedanken gekommen, dass ich einzelne "kategorie1-page.php", etc. bauen muss um den erwünschten Effekt zu haben. Aber was sollte in diesem Dokument drinne stehen ist halt meine Frage. Da der Effekt derselbe ist, wie wenn ich auf eine bestimmte Kategorie in der Sidebar klicke, dachte ich mir, dass der Befehl doch auch irgendwo in den Dateien des Themes oder WP zu finden sein muss - aber da bin ich eben überfragt.
    Nach meinem Verständnis müsste auf dieser Seite folgendes stehen (aber eben in php): Rufe alle Artikel dieser Kategorie auf. Zeige jeweils darunter: Headline, die ersten bspw. 40 Wörter, Autor, Kommentare und ein "Weiterlesen"-Button. Und: die Seite muss so aufgebaut sein, dass ich sie dem Kategorie-Punkt beim erstellen der Kategorie im Admin-Bereich zuordnen kann. Klingt einfach - aber vielleicht gibt es dazu noch eine Anleitung,

    Danke
     
  7. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Jupp. Diese wird mit ziemlicher Sicherheit von oben genannter wp_list_categories()-Funktion (im WP-Jargon "Template Tag" genannt) generiert.

    Ja, auch das ist Standard-WordPress, und nennt sich "Kategoriearchiv". Für dieses Kategoriearchiv wird eine bestimmteTenplate-Datei genutzt, d.h. alle Kategoriearchive greifen zur Darstellung auf diese Template-Datei zurück. Welche das ist erfährst du ebenfalls in der Doku:
    Template Hierarchy WordPress Codex
    Category Templates WordPress Codex

    Soweit klar. Daher ja mein Hinweis auf wp_list_categories().

    Nun, du würdest in diesem Fall die Hauptkategorien zu Children des Menüpunktes "Kategorien" degradieren. ;) Nur die Frage: was ist "Kategorien"? Ein Link oder nicht? Ist es ein Link, dann: wohin?

    Nicht zwingend. Du bekommst aber ein Problem, die Auflistung von Kategorien und "Seiten" (im WP-Sinn) im Menü zu vermischen. Da gibts verschiedene Ansätze, wirklich "schön" ist aber keiner. Wie gesagt, "Seiten != Kategorien" ;)

    Ein "Loop", d.h. eine Artikelschleife. Darum musst du dich aber nicht kümmern. Wie gesagt, es wird auf eine bestehende Templatedatei zurückgegriffen. WENN du es richtig machst.

    So, ich hoffe, damit auch zu deinen restlichen Fragen zumindest einen Hinweis gegeben zu haben. Wenn nicht, frag einfach nach.
     
  8. ddklog

    ddklog Active Member

    Registriert seit:
    6. Oktober 2008
    Beiträge:
    28
    Zustimmungen:
    0
    Hallo nochmal,

    Irgendwie steckt in dem Begriff "wp_list_categories" noch nicht drinne wie und wo ich darauf verweisen kann.
    Ich bräuchte hier aufgrund meiner Kenntnisse einfach den ganz konkreten Hinweis. Also der ganz konkrete Schritt: Bspw. habe ich die Möglichkeit in das Textfeld im WP-Admin-Bereich beim Seiten generieren einen Befehl schreiben zu können. Ist das die Stelle an der ich darauf verweise, dass beim draufklicken bitte die Kategorie xy aufgerufen wird? - und wo steckt die Information, dass es sich um die Kategorie xy und nicht um yz handelt?

    Ich dachte, ich kann den Link dafür aus der Sidebar rausholen - da steht aber nur:
    Siehst du da, etwas, was ich brauchen könnte?


    Ich verstehe hier auch deinen Verweis Seiten!=Kategorien und die Warnung, das nicht zu vermischen, nicht genau, kannst du das konkretisieren? Außerdem: welche sind die Wege?
     
  9. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Hast du dir die Doku zu der Funktion eigentlich mal angesehen? Hier nochmal der Link zur (weniger ausführlichen, aber vielleicht einfacher zu verstehenden) deutschen Doku dieser Funktion:
    Template Tags/wp list categories ? WordDoku
    und ein Zitat aus eben dieser:
    Ja. Hab ich dir rot markiert. (PS: Verwende bitte keine Zitat-Tags für Quellcode, sondern die entsprechenden Code-Buttons)


    Die Liste der Seiten wird (analog zur Liste der Kategorien) mit der Template-Funktion wp_list_pages() erzeugt und ausgegeben. D.h. du schreibst im Template nur diesen Funktionsaufruf hin, und WP schreibt dir an diese Stelle eine HTML-Liste aller Seiten deines Blogs. Du kannst innerhalb dieser Liste nicht einfach sagen: "an 3. Stelle möchte ich jetzt aber eine Liste meiner Kategorien haben, und danach den Rest der Seiten". Das meine ich mit "vermischen".

    Du könntest mit include/exclude-Parametern steuern, welche Seiten ausgegeben werden sollen. D.h. du schließt erst eine Hälfte der Seite aus, gibst dann deine Kategorieliste aus, und dann die restlichen Seiten. Du könntest ebenso mit Filtern (WordPress Plugin-API) arbeiten, und die Seitenliste bei der Ausgabe "editieren". Du könntest Seiten anlegen, die ein Kategorielisting (d.h. die Artikel in eienr Kategorie) ausgeben.
    Wie gesagt, jede dieser Möglichkeiten hat ihre Nachteile, wirklich empfehlen kann ich davon keine. Am sinnvollsten wäre in meinen Augen noch Variante 1, wobei die Kategorieliste am Anfang/Ende der Seitenliste angefügt wird - mittel schon x-mal erwähnter wp_list_categories()-Funktion.
     
  10. ddklog

    ddklog Active Member

    Registriert seit:
    6. Oktober 2008
    Beiträge:
    28
    Zustimmungen:
    0
    Super! Jetzt konnte ich mich entscheiden:
    Ich denke ich entscheide mich für die Variante, bei der ich Seiten anlege, die ein Kategorienlisting ausgeben. Das ist für mich am sinnvollsten, weil ich diese Seiten beim Anlegen im Admin-Bereich eindeutig zuweisen kann.
    Frage 1: liege ich damit richtig, dass das Seiten sind, die bspw. „category-1-page.php“ heißen? (nur solche erscheinen in „Erweiterte Einstellungen“ >> „Seiten-Template“)
    Frage 2: Wenn ja – muss ich auf dieser Seite ja sagen, um welche Kategorie es sich handelt und wie sie dargestellt werden soll (bspw. Überschrift, Teaser, darunter zusätzliche Angaben, wie Autor, Kommentare, etc). Woher bekomme ich diesen Code? Kann ich mir den irgendwo rauskopieren?
    Ich weiß, dass du mir bereits eine Menge an Code-Schnipsel genannt hast – nur kann ich damit nichts anfangen (z.B. der Befehl wp_list_categories () sagt mir so alleine stehend nichts;)
     
  11. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Okay, das klingt gut.


    Schau mal wie der Fragesteller das in diesem Thread hier gelöst hat:
    http://forum.wordpress-deutschland.org/konfiguration/39890-auf-seiten-artikel-zeigen.html
    Grille verwendet da für die Kategorien und zugehörigen Seiten denselben Namen, und prüft daraufhin ab.

    Alternativ kannst du auch über die Benutzerdefinierten Felder mitteilen, welche Kategorie ausgegeben werden soll.

    So oder so benötigst du nur 1 Seitentemplate für alle Kategorien. ;)


    Schon klar, dass dir das nix sagt. Muss ja auch nicht. Aber ich hab das ja jeweils mit der entsprechenden Doku-Seite verlinkt, wo eigentlich alles vernünftig erklärt ist. ;)
     
  12. ddklog

    ddklog Active Member

    Registriert seit:
    6. Oktober 2008
    Beiträge:
    28
    Zustimmungen:
    0
    Also ich hab jetzt ein Screenshot eingefügt um mein Problem zu visualisieren. Auf dem Bild sieht man oben ein Menu, das als 3. Punkt Kategorien hat. Diese sind (abgesehen von einer) dieselben wie in der Sidebar.
    Nun habe ich vor, pages.php-Templates zu erstellen, die ich den einzelnen Kategorien im Menu (nicht Sidebar) zuweisen möchte. In diesen Templates soll drinne stehen, dass genau dieselbe Seitenansicht gezeigt wird wie wenn ich eine Kategorie aus der Sidebar anklicke. Kann mir da bei dem Code jemand helfen? Das wäre sehr freundlich!

    @marX: Tut mir leid, aber der letzte Hinweis trifft mein Problem einfach nicht oder ich verstehe das einfach nicht!
     
  13. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Ich verstehe schon was du meinst. ;) Vielleicht kann ich mit ein wenig Code anschaulicher machen, was ich meine. Poste bitte mal den Code (aus der header.php vermutlich), wo das Top-Menü erzeugt wird. Dann versuchs ich dir daran mal zu erklären. Pagetemplates brauchst du da nicht, denke ich.
     
  14. ddklog

    ddklog Active Member

    Registriert seit:
    6. Oktober 2008
    Beiträge:
    28
    Zustimmungen:
    0
    Hier der Code aus der Header-Datei
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Bin sehr gespannt und vielen Dank
     
  15. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Bau erstmal folgendes ein:
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    und schau mal ob das dem nahe kommt, was du möchtest.
     
  16. ddklog

    ddklog Active Member

    Registriert seit:
    6. Oktober 2008
    Beiträge:
    28
    Zustimmungen:
    0
    Das ist ja unglaublich!
    Ich habe jetzt den Code noch erweitert damit er mir die Reihenfolge so anzeigt, wie ich das auch in der Sidebar gestaltet habe.
    Was ich jedoch nicht checke:
    1. Die Formatierung, die im nav.css festgelegt wurde, übernimmt er mir hier jedoch nicht!? Wieso, verstehe ich nicht, da er "Home", das ja auch explizit im Code steht, auch so formatiert wird!
    2. Wie kann ich ihm "sagen", dass ich "Kategorien" erst an 3. Stelle haben möchte?
    Der Code sieht jetzt folgendermaßen aus:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Vielen Dank nochmals
     
  17. ddklog

    ddklog Active Member

    Registriert seit:
    6. Oktober 2008
    Beiträge:
    28
    Zustimmungen:
    0
    Habe jetzt das Problem mit der Formatierung in den Griff bekommen. Siehe Code. Aber wegen der Reihenfolge weiß ich echt nicht weiter.
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Danke
     
  18. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Glaub mir halt auch mal was! :D

    [del]Sollte eigentlich. Auf ejden Fall darfst du nicht nochmal die ID "#nav" angeben. IDs dürfen nur 1x im Code auftauchen. Da ich aber nicht weiß was die IDs/Klassen bei dir so machen, kann ich erstmal nicht mehr dazu sagen. Ein Link wäre an der Stelle gut.
    ("Theoretisch" sollte es so aber funktionieren, die Seiten werden ja auch nicht anders eingebunden.)[/del]
    Formatierung siehe unten - da fehlte natürlich das <a>-Element.

    Wie ich schon weiter oben angedeutet hatte ("Mischen" von Seiten und Kategorien im Menü), du benötigst dann 2x. wp_list_pages() - 1x vor und 1x nach wp_list_categories() mit entsprechenden include/exclude-Parametern. Etwa so:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    wobei "123" die ID der Seite ist, die vorher auftauchen soll.
     
    #18 marX, 13. Oktober 2008
    Zuletzt bearbeitet: 13. Oktober 2008
  19. ddklog

    ddklog Active Member

    Registriert seit:
    6. Oktober 2008
    Beiträge:
    28
    Zustimmungen:
    0
    Was ist die ID der vorherigen Seite? Also wo finde ich die?
     
  20. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden