kulturbanause Blog

Responsive Design, WordPress, Konzeption, HTML, CSS, JS & UX/UI …

WordPress: CSS-Klasse .current_page_parent bei Custom Post Types aus dem Menü entfernen

In den Einstellungen von WordPress ist es möglich eine statische Seite als sog. »Beitragsseite« festzulegen. Diese Seite dient dann als Übersichtsseite für alle Beiträge (posts). Ist diese Seite in einer WordPress-Navigation enthalten bekommt sie die Klasse .current_page_parent sobald man sich in einem Beitrag, in einer Kategorie oder in einem Archiv befindet. Die Klasse erscheint ebenfalls, wenn man WordPress mit Custom Post Types erweitert und sich in einem solchen befindet. Solltet ihr WordPress als CMS einsetzen, ist die Klasse häufig unerwünscht. Wir zeigen euch das Snippet mit dem ihr sie entfernen könnt. 

Workshops und Seminare von kulturbanause

Unsere Seminar-Termine für 2018 sind online!

Jetzt Tickets sichern!

Beitragsseite einrichten

Zur Einrichtung der Beitragsseite müsst ihr im Backend unter »Einstellungen > Lesen« in den Bereich »Startseite zeigt« wechseln und dort »Eine statische Seite (unten auswählen)« auswählen. Hier legt ihr fest, welche Seite eure Startseite und welche eure Beitragsseite werden soll. Der typische Anwendungsfall für eine Beitragsseite ist ein Blog oder ein Newsbereich.

Auswahl von statischen Seiten als Startseite und Beitragsseite im WordPress-Backend

Entfernen der .current_page_parent-Klasse

Um die current_page_parent-Klasse für Custom Post Types zu entfernen müsst ihr folgendes Snippet in eure functions.php oder in ein seitenspezifisches Plugin einfügen. Es wird abgefragt, ob ihr euch in einem Beitrag des Types post, in einer Kategorie, in einem Schlagwort oder in einem Archiv befindet. Sollte nichts davon zutreffen, entfernt das Snippet die »Eltern-Klasse« aus dem Navigationspunkt der Blog-Übersichtsseite.

function kb_remove_page_for_posts_class_outside_blog( $classes, $item, $args ) {
  if ( !is_singular( 'post' ) && !is_category() && !is_tag() && !is_date()) {
    $blog_page_id = intval( get_option( 'page_for_posts' ) );
    if ( $blog_page_id != 0 ) {
      if ( $item->object_id == $blog_page_id ) {
        unset ( $classes[array_search( 'current_page_parent',$classes )] ); 
      }
    }
  }
return $classes;
}
add_filter( 'nav_menu_css_class', 'kb_remove_page_for_posts_class_outside_blog', 10, 3 );

Jetzt bist du gefragt!

Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

Du kannst diesen Beitrag natürlich auch weiterempfehlen. Wir sind dir für jede Unterstützung dankbar!

Unterstützung bei WordPress-Projekten

Unsere WordPress Agentur ist auf die Entwicklung maßgeschneiderter WordPress-Themes und -Websites spezialisiert. Wenn du Unterstützung bei der Planung, Gestaltung und Entwicklung eines Projekts benötigst, helfen wir gerne weiter.
WordPress-Leistungsangebot →

Das könnte dich auch interessieren

Kommentar verfassen

Dieser Blog lebt vom Feedback der Besucher! Also los, mach mit!
Bitte habe Verständnis dafür, dass Kommentare die mit dem Inhalt dieses Beitrags nichts zu tun haben, gelöscht werden.