WordPress Plugin: Show Active Category

am 27.07.2008 / in technik / unter #

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“

  • Monika
    29.07.2008 14:29

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

    lg

    Antworten

  • KJ
    05.08.2008 10:49

    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

  • dirk
    05.08.2008 11:25

    @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

  • cbeier
    17.08.2008 18:32

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

    Antworten

  • dirk
    18.08.2008 07:41

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

    Antworten

  • hc
    18.08.2008 17:21

    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

  • dirk
    18.08.2008 22:40

    @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

  • hc
    19.08.2008 11:56

    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

  • cbeier
    20.08.2008 09:50

    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

  • Julia
    18.11.2008 20:18

    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

  • philippdatz
    16.03.2009 15:25

    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

  • philippdatz
    20.03.2009 11: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

  • dirk
    20.03.2009 11:30

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

    Antworten

  • Tasin Reza
    18.05.2009 15:43

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

    Tasin

    Antworten

  • Andy Levin
    14.07.2009 22:03

    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

  • elexx
    16.04.2010 10:07

    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

  • Mr_Wizzy
    22.07.2010 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

  • Marcus
    24.08.2010 01:02

    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

  • Jean-Hugues Bretin
    22.09.2010 11:33

    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

  • Wolf Larsen
    24.02.2013 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

  • Wolf Larsen
    24.02.2013 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

Antworten

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