Recent Posts aus Kategorie mit Subkategorie

  • Hi,

    ich habe 8 große Kategorien, die Unterkategorien haben. Ich möchte die neusten Posts einer Kategorie (nur Überschriften) ausgeben – geht ohne Plugin, wunderbar.
    Jetzt möchte ich vor der Überschrift jeweils die Unterkategorie haben. Das ganze handelt sich um einen Sportverein mit Abteilungen, deswegen als einfaches Beispiel einer [COLOR=#ff0000]Kategorie[/COLOR] und einer [COLOR=#ee82ee]Subkategorie[/COLOR]:

    [COLOR=#ff0000]Fussball[/COLOR]

    [COLOR=#ee82ee]1. Herren[/COLOR] - Lore Ipsum set dolorem
    [COLOR=#ee82ee]3. Damen[/COLOR] - Set Dolorem sed etiam
    [COLOR=#ee82ee]2. Herren[/COLOR] - Sed etiam lore ipsum


    Mit dem normalen [COLOR=#0000ff]get_recent_posts[/COLOR] sind Unterkategorien in der Ausgabe (offset 0) leicht mit einzubeziehen. Aber wie schließe ich bei [COLOR=#0000ff]get_the_category[/COLOR] ein, dass ausschließlich die "unterste" Kategorie angezeigt wird? Bzw. wie baue ich das in den Recent Posts teil ein?

    Über Hilfe freue ich mich sehr!

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Hallo,
    ich hätte drei veschiedene Ansätze, alle sind ungetestet, für Möglichkeit eins würde ich nicht die Hand ins Feuer legen, aber Version zwei (bisn komplexer) sollte auf jedenfall funktionieren.

    PHP
    <?php $category = get_the_category($post->ID);
     echo end($category)->cat_name; ?>
    PHP
    $post_categories = get_the_category(); 
    $categories_by_id = array();
     foreach ( $post_categories as $category ) {    
     $categories_by_id[$category->cat_ID] = $category;
     } foreach ( $post_categories as $category ) {
      unset( $categories_by_id[$category->category_parent] ); 
    } // $categories_by_id will now only contain the deepest categories


    Für Spaß mit dem Code, die DKMS würde sich über eine Spende freuen ;)

    Digitaler Rucksack Nomade

    Einmal editiert, zuletzt von Michi91 (26. Februar 2013 um 14:53)

  • Hey,

    super klasse, vielen Dank! Leider funktionieren aber alle drei Codes bei mir nicht.

    Ich habe mal angehängt, was ich überhaupt da insgesamt Ausgebe für meine Recent Posts:

    Bei deiner ersten Codezeile wird mir einfach die Hauptkategorie, also die erste Ebene, alleine ausgegeben. Bei der zweiten Version hingegen bekomme ich eine Liste aller Kategorien.

    Das du auf die DKMS hinweist finde ich klasse. Ich bin registrierter Knochenmarkspender und hab dafür auch schon Werbung gemacht. Eine schöne Art deine Hilfe zu würdigen!

  • Ich habe bei weiterer Recherche folgenden Code für mich als funktionierend, wenn auch nicht optimal gefunden.

    PHP
    <?php
    foreach((get_the_category()) as $childcat) {
    if (cat_is_ancestor_of(25, $childcat)) {
    echo '<a href="'.get_category_link($childcat->cat_ID).'">';
    echo $childcat->cat_name . '</a>';
    }}
    ?>

    Das ist leider an eine Kategorien-ID gebunden (hier die ID 25) und ausgegeben werden alle aktiven Subkategorien, nicht nur die unterste (In meinem Beispiel vom Verein "Volleyball -> Herren -> 1. Herrenmannschaft" wird also "Herren -> 1. Herrenmannschaft" statt nur "1. Herrenmannschaft" ausgegeben).

    Wenn ich das noch irgendwie loskriege ist es perfekt. Wenn hier jemand weiß wie, freue ich mich sehr. Ansonsten aktualisiere ich selbst der Forensuche wegen natürlich auch, sobald ich etwas finde.

  • die IDs und das html musst Du anpassen,
    getestet habe ich das bei mir daheim nochmals ;)

  • Hey Monika,

    VIELEN VIELEN DANK! :) Das funktioniert super und ist genau das, was ich brauche. Auch wenn ich nicht ganz durchblicke, ist mir vieles davon schlüssig und gibt mir ein besseres Grundverständnis. Wahrscheinlich ist jetzt der Punkt, an dem ich einfach mal PHP lernen sollte.

    Vielen Dank aufjedenfall für eure Hilfen, das weiß ich zu schätzen!

    Grüße,
    Soy.

  • Hey Monika,

    VIELEN VIELEN DANK! :) Das funktioniert super und ist genau das, was ich brauche. Auch wenn ich nicht ganz durchblicke, ist mir vieles davon schlüssig und gibt mir ein besseres Grundverständnis. Wahrscheinlich ist jetzt der Punkt, an dem ich einfach mal PHP lernen sollte.

    Vielen Dank aufjedenfall für eure Hilfen, das weiß ich zu schätzen!

    Grüße,
    Soy.

    freut mich,wenns klappt
    daheim auf der Texto werde ich deine Anfrage mal für einen Beitrag nutzen und dort erklär ich meist sehr laienhaft was der Code den ich bringe auch macht ;)
    grundsätzlich aber darauf achten, dass die Artikel auch wirklic hnur in einer einzigen Kategorie gespeichert sind, sonst müßt man eine andere Lösung finden ...

  • Das mit nur einer Kategorie auswählen ist wahrscheinlich der Punkt.

    Das funktioniert super so. Allerdings, sobald ich etwas in der Kategorie "Volleyball" habe, erscheint dies nicht mehr, es muss also immer eine Subkategorie ausgewählt sein (wie z.B. Herren, Damen, 4. Damen, 2. Herren, Hobby etc.).

    Kann ich den Code irgendwie so erweitern, dass auch das erste Level mit einbezogen wird, falls keine Unterkategorie ausgewählt ist? Ich muss theoretisch dem Code ganz am Anfangen sagen, "if der Post hat eine Subkategorie, mache das folgende" und dann einfach "else -> display category"?

    Wenn nicht könnte ich auch gut damit leben, wie es jetzt funktioniert.

    So einen Beitrag hab ich lange bei Google gesucht, aber es scheint schon ein spezieller Wunsch zu sein und ich habe keinen einzigen dazu gefunden. Ich freue mich auf deinen!

    Einmal editiert, zuletzt von mr92 (28. Februar 2013 um 14:18)

  • ja der code macht das was du wolltest
    zeige Unterkategorie an aus Hauptkat X

    wenn es keine Unterkat gibt, kann er nichts anzeigen :-)

    allerdings wenn diese Hauptkat keine Unterkats hat, dann kannst du ja einfach 5 Artikel aus dieser Kat anzeigen mit Überschrift dazu ;)

    da findest du hier jede Menge Beispiele wie das geht
    http://www.texto.de/wordpress-cms-loop-spielereien-266/

    weil dann brauchst du ja keinen Kategorienamen dazuschreiben, weil durch die Überschrift sowieso klar ist woher die kommen


    der Artikel ist veröffentlicht :-)

  • Da hast du recht, allerdings ist das ganze etwas spezieller ;)

    Ich gebe News ganz normal aus, nur drei Stück, die sind ganz normal formatiert und zu sehen.

    Der Verein hat 16 Abteilungen, und nicht jeder Turner will sich die z.B. Tennis News durchlesen. Damit jeder sein Angebot wahrnehmen kann, sind unten Boxen, in dem von jeder Abteilungen nur die Schlagzeilen ausgegeben werden.

    Hier steht dann

    Volleyball
    1. Herren Wir wollen den Titel
    4. Damen Nachwuchsspieler gesucht

    Aber Nachrichten, die nur die Kategorie "Volleyball" haben werden nicht angezeigt, obwohl da ja z.b. stehen könnte "Abteilungssitzung am 30. Juni", was ja für eine ganze Abteilung dient. Dafür eine neue Box zu generieren ist aber rein logistisch auf dieser Seite destruktiv, sowohl der Übersichtlichkeit, als auch der Benutzerfreundlichkeit wegen.

    Wenn du hierfür eine schnelle Lösung kennst, freue ich mich sehr. Ansonsten scheint das aber auch etwas aufwendigeres zu sein, womit ich den Rahmen einer Forenhilfe nicht überstrapazieren möchte.

  • verstehe
    das einfachste ist du gibts händisch einen Link unten dran zur Hauptkat und schreibst einfach hin
    News gibts hier ...

    wer dann noch zu faul ist => dem ist net zu helfen ;)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!