it-swarm.com.de

So fügen Sie Klassen im übergeordneten Link wp_list_categories hinzu

Wie füge ich Klassen in die wp_list_category ein? Ich kenne die wp_list_categories ('title_li ='); generiert Klassen, aber ich möchte eine Klasse in den Link der übergeordneten Kategorie einfügen

<ul>
  <li><a href="#"> link1</a> </li>
  <li><a href="#">link2 </a> </li>
  <li><a href="#">link3 </a>    <---how do I add a special class here
      <ul class="children">  
        <li><a href="#">link3 children </a> </li>
        <li><a href="#"> link3 children</a> </li>
      </li>
 </li>
 </ul> 

Ich plane hier ein jquery UI Akkordeon zu benutzen,
bitte hilf. Danke dir

-edit-- Problem von Paul gelöst, danke Mann

1
arnold

jquery accordion akzeptiert eine Option namens header, mit der Sie einen Selektor zum Festlegen der Elemente bereitstellen können, die Sie als Akkordeon-Header verwenden möchten.

$('li.categories > ul').accordion({ header: 'li.categories > ul > li' });

3
Paul Cook

Ich habe dies hauptsächlich durch Reverse-Engineering des Access-Keys-Plugins zum Laufen gebracht. Der Code wird unten eingefügt, aber Sie können den Code für dieses Plugin jederzeit überprüfen. Es kann Ihnen helfen zu entziffern, was ein bisschen besser läuft.

add_filter('wp_list_categories', 'my_class_name_cats');
function my_class_name_cats($cats) {
        return preg_replace_callback('!(<li class="cat-item (cat)-item-([0-9]*)">[\s\S]*?<a([^>]*)>)!ims', 'my_class_name_finish', $cats);
}

add_filter('wp_list_pages', 'my_class_name_pages');
function my_class_name_pages($pages) {
    return preg_replace_callback('!(<li class="page_item (page)-item-([0-9]*)"><a([^>]*)>)!ims', 'my_class_name_finish', $pages);
}

function my_class_name_finish($matches){
    $id = $matches[3];
    $link = $matches[0];
    $class = $matches[4]. ' class="page-'.$id.'" ';
    $link = str_replace($matches[4], $class, $link);
    return $link;
}

Sie können class = "page - '. $ Id.'" Nach Belieben ändern. Derzeit wird die Klasse auf page- [ID der Seite oder Kategorie] gesetzt.

Fügen Sie den Code in die Datei functions.php Ihres Themes ein. Wenn Sie es nur für Kategorien wünschen, können Sie den Filter wp_list_pages ignorieren.

Hoffe das hilft.

2
PNMG

Es ist ein Filter in Arbeit:

http://core.trac.wordpress.org/ticket/16497

In der Zwischenzeit ist eine jquery-Lösung möglicherweise am besten für Sie geeignet, da Sie jquery ohnehin laden.

0
goldenapples