current_category anzeigen/hervorheben

  • Hallo zusammen,
    ich hoffe ihr könnt mir hierbei helfen!

    Ich möchte, dass wenn man sich gerade eine bestimmte Kategorie anguckt, dass diese im Menu, dort wo alle Kategorien aufgelistet sind, hervorgehoben wird.

    Das ganze funktioniert mit den Seiten perfekt, mit dem Code:

    PHP
    <li class="<?php if ( is_home() ) { ?>current_page_item<?php } else { ?>page_item<?php } ?>"><a href="<?php echo get_settings('home'); ?>"><span>Home</span></a></li>
    
    
    		<?php wp_list_pages('sort_column=menu_order&depth=1&title_li='); ?>

    Nur bei den Kategorien will es nicht so klappen. So sieht der Code dort zurzeit bei mir aus:

    PHP
    <li class="<?php if ( is_category() ) { ?>current_category_item<?php } else { ?>category_item<?php } ?>"></li>
    		<?php wp_list_categories('sort_column=menu_order&exclude=7,8,9&title_li='); ?>

    könnt ihr mir sagen, was daran falsch ist? Habe es versucht einfach analog wie bei den Seiten zu machen.

    Danke schonmal für eure Hilfe!!

    lg klonschaf

    • 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

  • Also für die Seiten sieht das css so aus:

    PHP
    #menu2 li.current_page_item a, #menu li.current_page_item a:hover {
    color : #f80000;
    padding : 0 0 3px 0;
    }

    Und für die Kategorien so

    PHP
    #menu li.current_category_item a, #menu li.current_category_item a:hover {
    color : #f80000;
    padding : 0 0 3px 0;
    }

    also eigentlich genau gleich.


    Ok, hier zu meiner Testseite, wo ich gerade das Theme versuche zusammenzubauen :)

  • Es funktioniert vom Css her wunderbar. Das Problem ist nur, dass Du dort zwar <li class="current_category_item"> hin bekommst, aber der <a>-Link leer bleibt. D.h. Deine Kategorien kommen von wo anders daher.

    Kannst Du testen in dem Du einfach einmal irgendwo ein List-Item in ein Elternelement mit id="menu" einbaust und dem Li-Item dann die entsprechende Cat..blabla. kopier einfach zum Test den folgenden Code irgendwo in dein template:

    Code
    <div id="menu">
    <li class="current_category_item"> <a href="#"> TEST </a> </li>
    </div>
  • mh, ok, danke schonmal!

    Also wenn ich das einbaue wird natürlich einfach "Test" ausgegeben.

    Also ich brauche etwas, womit ich das hier, so wie bei den Pages, ersetzen kann. Das fehlt ja bei den Kategorien.

    PHP
    <a href="<?php echo get_settings('home'); ?
    >"><span>Home</span></a>

    Also das, was für die Seiten "Home" ist, ist für die Kateorien " ... " mh, aber was? :)

    oder hab ich das jetzt komplett falsch verstanden?

  • zusaetzlich wird es ein wenig komplizierter, da ein artikel auch mehrere kategorien haben kann. den folgenden schnipsel hatte ich mir mal fuer ein widget gebastelt (widget code weggelassen). zuerst wird auf 'single' getested, weil die aktuellen kategorien nur da relevant sind; dann werden alle kategorien des artikels herausgefunden, und dann mit den kategorien der liste verglichen, bei uebereinstimmung wird der kategorie in der liste die class .current-cat mitgegeben. bei 'nicht-single' wird die standard wp_list_categories() verwendet:



    das ganze koennte anstelle von 'wp_list_categories('title_li='); ' eingefuegt werden.

  • oh das ist klasse, vielen Dank!!

    sollte auch theoretisch klappen.

    also es sieht jetzt so bei mir aus:

    PHP
    <div id="content_wrapper" class="clearfix">
    	<div class="left_content" id="content_left">
    		<ul id="menu" class="clearfix">
    		<?php global $post;
    if(is_single()) :
    (...schnipsel...)
    endif;  ?>
    		</ul>

    könnte mir einer jetzt nur noch bitte sagen, wie jetzt in der .css die klasse genau heissen muss?
    also wegen den ganzes classes und IDs + jetzt noch die ".current-cat" dazu, da komme ich jetzt ganz durcheinander, als nicht wirklich css-affiner user :)

    wäre echt klasse!

  • mein fehler:

    Zitat

    das ganze koennte anstelle von 'wp_list_categories('title_li='); ' eingefuegt werden


    der schnipsel bringt die <ul> schon mit. das werde ich schnell mal aendern:


    damit sollte es mit deinem einbau dann stimmen.

    die aktive class fuer die style.css ist:

    Code
    .current-cat { }



    nur wenn das nicht greift, dann vielleicht versuchen:

    Code
    #menu ul li.current-cat {  }

Jetzt mitmachen!

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