Cómo agregar clases en el enlace principal wp_list_category
-
16-10-2019 - |
Pregunta
¿Cómo agrego clases en wp_list_category? Conozco las gategorías wp_list_catorias ('title_li ='); genera clases, pero quiero agregar una clase en el enlace de categoría principal
<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>
Estoy planeando usar un acordeón de ui jQuery aquí,
por favor ayuda. gracias
-Edit-- Problema resuelto por Paul, gracias hombre
Solución
JQuery Accordion acepta una opción llamada encabezado que le permite proporcionar un selector para designar los elementos que desea actuar como encabezados de acordeón.
$('li.categories > ul').accordion({ header: 'li.categories > ul > li' });
Otros consejos
He conseguido que esto funcione principalmente por ingeniería inversa de la complemento de keys de acceso. El código se pega a continuación, pero no dude en revisar el código para ese complemento. Puede ayudarlo a descifrar lo que está pasando un poco mejor.
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;
}
Puede cambiar class = "Page-'. $ Id." A lo que quiera. Actualmente establece la clase en página- [ID de página o categoría
Agregue el código a las funciones de sus temas.php. Si solo lo desea para categorías, puede ignorar el filtro WP_LIST_PAGES.
Espero que esto ayude.
Hay un filtro en proceso:
http://core.trac.wordpress.org/ticket/16497
Pero mientras tanto, una solución jQuery podría ser la mejor para usted, ya que está cargando jQuery de todos modos.