arnold
  • 0
Учитель

Как добавить классы в родительскую ссылку wp_list_category

  • 0

Как добавить классы в wp_list_category, я знаю wp_list_categories(‘title_li=’); генерирует классы, но я хочу добавить класс в ссылку родительской категории

<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> 

Я планирую использовать здесь аккордеон пользовательского интерфейса jquery,

пожалуйста, помогите. Спасибо

-edit— проблема решена Полом, спасибо, чувак

Share
  1. Аккордеон jquery принимает параметр, называемый заголовком, который позволяет вам предоставить селектор для обозначения элементов, которые вы хотите использовать в качестве заголовков аккордеона.

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

    • 0
  2. Я заставил это работать, в основном, путем обратного проектирования плагина ключей доступа. Код вставлен ниже, но не стесняйтесь проверить код для этого плагина. Это может помочь вам лучше понять, что происходит.

    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;
    }
    

    Вы можете изменить class=»page-‘.$id.'» на что угодно. В настоящее время он устанавливает класс page-[id страницы или категории]

    Добавьте код functions.php вашей темы. Если вы хотите это только для категорий, вы можете игнорировать фильтр wp_list_pages.

    Надеюсь это поможет.

    • 0
  3. В работе есть фильтр:

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

    Но в то же время решение jquery может подойти вам лучше всего, поскольку вы все равно загружаете jquery.

    • 0

Оставить ответ

You must login to add an answer.