Настройка — Как Добавить Классы В Родительскую Ссылку Wp_List_Category

  • Автор темы Denis Rain
  • Обновлено
  • 21, Oct 2024
  • #1

Как добавить классы в 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 UI,

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

-редактировать--

Denis Rain


Рег
03 Dec, 2006

Тем
88

Постов
187

Баллов
627
  • 25, Oct 2024
  • #2

jquery Accordion принимает опцию, называемую заголовком, которая позволяет вам предоставить селектор для обозначения элементов, которые вы хотите использовать в качестве заголовков аккордеона.

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

 

Vova_vp


Рег
26 Sep, 2011

Тем
76

Постов
193

Баллов
633
  • 25, Oct 2024
  • #3

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

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

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

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

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

 

Nafset


Рег
15 Mar, 2020

Тем
78

Постов
204

Баллов
624
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно