WordPress Plugin: Show Active Category

Im Folgenden geht es um ein Worpress Plugin von mir, welches es ermöglicht, die Kategorie(n) eines Artikels in der Navigation hervorheben, wenn man sich auf der Einzelseite eines Blogposts befindet.

Warum braucht man das Plugin?

WordPress ist zwar von Haus aus in der Lage, beim browsen durch die Kategorien eines Blog die aktuelle ausgewählte Kategorie optisch hervorzuheben. Dazu erhält die aktuelle Kategorie einfach die zusätzlich Klasse “current-cat” und kann mittels CSS definiert werden.

Ist man jedoch auf einer Artikelseite, ist diese Funktionalität nicht mehr gegeben. Egal ob ein Blogpost in einer oder in mehreren Kategorien ist, mit einer Standard-Wordpress-Installation findet man in der Liste der Kategorien keinen Hinweis, zu welcher Kategorie der aktuelle Artikel gehört.

Genau hier verschafft das Show-Active-Category Plugin Abhilfe.

Nach der Installation und Aktivierung des Plugins wird jede Kategorie, zu der ein Artikel gehört, um die Klasse “active_category” ergänzt. Diese Klasse MUSS danach im WordPress Stylesheet angelegt werden.

Achtung: Wird die Klasse “active_category” nicht per CSS beschrieben, hat das Plugin keine sichtbaren Auswirkungen!

Download:

show-active-category.zip (1,9 KB)

Installation und Benutzung des Plugins:

  1. Die Datei show-active-category.zip herunterladen und entpacken.
  2. Den entpackten Ordner show-active-category in das Verzeichnis wp-content/plugins kopieren bzw. per dahin FTP hochladen.
  3. Im WordPress Backend unter Plugins das Plugin “Show Active Category (while browsing a post)” aktivieren.
  4. Im Stylesheet des WordPress Themes eine Anweisung für die Klasse .active_category angeben.
  5. Fertig!

Getestet ist das bisher mit WP 2.5.1 und WP 2.6
Über Feedback zum Plugin freue ich mich natürlich.

27 Reaktionen auf “WordPress Plugin: Show Active Category”

  1. Hi wie reagiert das Plugin, wenn ein Artikel in mehreren Kategorien gespeichert ist?

    lg

    Antworten

  2. This is a great help thanks. I was wondering why this wasn’t already core functionality but I guess that if you are using the categories as a navigation then having multiple categories highlighted (if the post has multiple categories assigned) could be confusing. Still, it would be good if this was an optional feature in wordpress.

    Cheers!

    Antworten

  3. @monika: es wird jede kategorie, zu der ein artikel gehört, mit der neuen klasse versehen, d.h. es werden auch mehrer kategorien hervorgehoben.

    Antworten

  4. Leider ist bei WP 2.6.1 Schluß… Dort werden mit dem Plugin sämtliche Kategorien hervorgehoben :-(

    Antworten

  5. hallo christine, danke für den hinweis. ich schau mir das heute abend mal an und versuche das problem zu lösen.

    Antworten

  6. moin,
    sehr nett das plugin, ABER… ;-)
    … kann es sein, dass die oberkategorien (current-cat-parent) hierbei nicht berücksichtigt werden??

    z.B.: wp_list_categories(‘depth=1′)
    stylesheets-Klassen:
    .current-cat,
    .current-cat-parent,
    .active_category

    für die unterkategorien klappts, aber es sollten beide hervorgehoben werden.

    danke schon mal vorab für feedback und natürlich für das plugin!

    Antworten

  7. @cbeier: bist du dir sicher, dass das problem an wp 2.6.1 liegt? hab es gerade lokal getestet und kann den fehler nicht nachvollziehen.

    @hc: es war gar nicht meine absicht, dass die oberkategorie(n) mit hervorgehoben. sollte so etwas tatsächlich gewünscht werden, könnte ich mir mal gedanken dazu machen, dass plugin dahingehend zu erweitern.

    danke für das feedback!

    Antworten

  8. ich hab es mal für mich angepasst. aber danke für deine reaktion!
    grüße, hauke

    hier meine änderungen:
    ————————–

    if( is_single() ) {
    $categories = wp_get_post_categories($post->ID);
    foreach( $categories as $catid ) {
    $cat = get_category($catid);
    $catParent = get_category($cat->category_parent);
    if(preg_match(‘#>’ . $cat->name . ‘#’, $text))
    {
    $text = str_replace(‘>’ . $cat->name . ‘‘, ‘ class=”active_category”>’ . $cat->name . ‘‘, $text);
    }
    else if (preg_match(‘#>’ . $catParent->name . ‘#’, $text))
    {
    $text = str_replace(‘>’ . $catParent->name . ‘‘, ‘ class=”active_category”>’ . $catParent->name . ‘‘, $text);
    }
    }
    }

    Antworten

  9. Hi Dirk, nee, war meine Dummheit. Funktioniert wunderbar!!
    Blöd, wenn man lokal andere Inhalte hat und online irgendwie bei nem Artikel alle Kategorien aktiviert hat… *pfeiff*

    Antworten

  10. Hi
    Is there any way the (fantastic) plug in can be altered to affect the li tag and not the a tag, so that a nested list of categories can be given a display:block declaration and expanded and viewed when looking at a post within them.

    (my full question is better explained <a href=”http://wordpress.org/support/topic/217532?replies=2#post-901986″here”)
    Thanks!

    Antworten

  11. vielen vielen dank für so ein grossartiges plugin, habe 2.7 und arbeitet einwandfrei, wenn es nur immer so einfach wäre. hast mir gerade zwei stunden arbeit erspart.

    philipp

    Antworten

  12. hate ja schonmal gecschrieben, nun habe ich eine frage, ist es auch möglich damit die kategorie, auf der man sich befindet, also in der adresszeile /category/kategorie1 irgendwie hervorzuheben?

    gruß,
    philipp

    Antworten

  13. hi philipp, das habe ich jetzt nich verstanden. wo möchtest du was hervorheben?

    Antworten

  14. Many thanks for sharing this, I have used it with WP 2.7 and it worked.

    Tasin

    Antworten

  15. Hi. I am using the plugin sorry I speak only English……………………………..is there anyway to easily adapt the code to highlight the parent of the active category?

    Thanks>>
    Andu

    Antworten

  16. hallo,
    zuerst mal danke fuer das plugin, und dass du es unter der GNUGPL veroeffentlicht hast :-)

    ich habe das plugin modifiziert, dass es den “current-cat” tag ins li element schreibt (so wie wordpress dies auch tut wenn man die kategorie direkt auswaehlt), und nichtmehr ins a tag. heisst der style .current_cat greift auch beim plugin und man muss nicht extra ein neues style definieren.

    die geaenderte foreach-schleife sieht wie folgt aus:

    foreach (wp_get_post_categories($post->ID) as $catid) {
    if (preg_match('#cat-item-' . $catid . '"#', $text)) {
    $text = str_replace('cat-item-' . $catid . '"', 'cat-item-' . $catid . ' current-cat"', $text);
    }
    }

    Antworten

  17. Mr_Wizzy am 22.07.10, 15:14

    Dieses Plugin scheint mir perfekt für meine Seite (WP 2.9.2) zu sein, aber leider finde ich nicht die richtige Stelle für den css-Befehl :(
    Habe eine suckerfish.css, tabs.css und style.css – Datei.
    Kann mir jemand einen Tipp geben, ob ich auf dem Holzweg bin ;-)

    Vielen Dank und freu mich schon tierisch wenns funzt. Und hier auch gleich die Frage, warum WP von Haus aus das nicht anbieten???!

    LG
    Frank

    Antworten

  18. Hi!

    I modified the code, so the class is added to the li tag

    function show_active_category($text) {

    global $post;
    if( is_single() ) {

    $a_categories = wp_get_post_categories($post->ID);

    foreach( $a_categories as $catid ) {
    $text = str_replace(‘cat-item-‘.$catid, ‘cat-item-‘.$catid.’ active_category ‘, $text);
    }
    }
    return $text;
    }
    add_filter(‘wp_list_categories’, ‘show_active_category’);

    Antworten

  19. thanks alot screenshine and Marcus. Marcus your last piece of code is exactly what I wanted, and i guess it’s what should be embed in the plug-in simply because you often have to deal with both a and and to design a perfect Menu ! Thanks ! And most of the time it’s where the main class stands.

    Antworten

  20. Wolf Larsen am 24.02.13, 01:19

    Das Plugin hatte ich früher mal im Einsatz. Jetzt scheint es mit WordPress 3.5.1 und dem Twenty Twelve nicht mehr zu funktionieren. Jedenfalls wird kein CSS mitgegeben, den man dann stylen könnte.

    Antworten

  21. Wolf Larsen am 24.02.13, 01:48

    WordPress 3 gibt die Stile besser aus. Man braucht kein Plugin zum hervorheben einer Kategorie mehr.

    http://designisphilosophy.com/tutorials/highlight-current-page-or-category/

    Wolf

    Antworten

  1. Highlight active categories (while browsing a post) | Kahi’s WordPress Notes
  2. Leonaut.com
  3. 12 New Plugins Set On 07/30 | Webabout.org
  4. Highlight Wordpress Category when on a Single Post: Tutorial | Design Shard | Web Design Blog
  5. Mark active category in single page(wordpress) | Let's start again...
  6. WordPress: Highlight Current Category Menu Item When Viewing Single Post | AEXT.NET MAGAZINE

Do you like it? Write here …

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

Du kannst folgende HTML-Tags benutzen: <a href=""> <b> <code>