it-swarm.com.de

Menüelement bei benutzerdefiniertem Beitragstyp hervorheben?

Ich verwende derzeit diesen Code, um ein Menü mit Seiten anzuzeigen. Ich benutze CSS, um die Klasse current_page_item anzuvisieren, die einwandfrei funktioniert, bis Sie auf einer Seite mit einem benutzerdefinierten Beitragstyp sind.

Wie kann ich diese Klasse als Ziel festlegen, wenn die Seite, auf der sich der Benutzer befindet, ein benutzerdefinierter Beitragstyp ist, z. B. Nachrichten oder Ereignisse?

<div id="menu-repeat">
<?php $args = array(
'depth'        => 1,
'show_date'    => '',
'date_format'  => get_option('date_format'),
'child_of'     => 0,
'exclude'      => '1908, 6282, 6380',
'include'      => '',
'title_li'     => __(''),
'echo'         => 1,
'authors'      => '',
'sort_column'  => 'menu_order, post_title',
'link_before'  => '',
'link_after'   => '',
'walker' => '' ); ?>
<ul><div class="menu-button"><?php wp_list_pages( $args, 'sort_column=menu_order' ); ?></div></ul>
2
Rob

Wenn dies für eine einmalige Site ist, würde ich vorschlagen, dies mit CSS zu tun. Das Hinzufügen der Klasse current_page_item zu einem Menüelement, wenn dies nicht der Fall ist, fühlt sich ebenfalls falsch an.

Solange Sie die Funktion body_class() für Ihr Element <body> im Design verwenden, sollte es eine Klasse mit dem Namen single-{event} geben, wobei "{event}" die ID des Beitragstyps ist. Fügen Sie daher den Selektor .single-{event} .page-item-{ID} hinzu, wobei "{ID}" die Seiten-ID der Ereignisseite ist (dies wird auch im Menüelement als Klasse angezeigt).

2
mrwweb

Ich glaube, das wurde als Fehler gemeldet. Die einzigen Lösungen, die ich gesehen habe, sind auf dem Trac-Ticket # 17590

function my_page_css_class( $css_class, $page ) {
    global $post;
    if ( $post->ID == $page->ID ) {
        $css_class[] = 'current_page_item';
    }
    return $css_class;
}
add_filter( 'page_css_class', 'my_page_css_class', 10, 2 );

Die Alternative wäre die Verwendung von Javascript, um eine Klasse mit addClass einzufügen.

2
Wyck