J'ai actuellement une page parent avec des pages enfants. Je suis en mesure de lister ces pages enfants, mais j'aimerais insérer une classe li personnalisée. Le wp_list_pages
génère <li class="page-item number"></li>
. Je voudrais qu'il produise <li class="hvr-underline"></li>
. Voici le code que j'ai jusqu'à présent:
$children = wp_list_pages( 'title_li=&child_of='.$post->ID.'&echo=0' );
if ( $children) : ?>
<ul class="menu ">
<?php echo $children; ?>
</ul>
<?php endif;
wp_list_pages
vous permet d'inclure une fonction de déambulateur. Cela vous donnerait une totale liberté pour ajouter les classes de votre choix, mais ce n'est pas une méthode pour débutant. Vous pourriez commencer par en lisant ceci .
Si vous souhaitez effectuer une recherche simple et remplacer dans la classe, comme votre question semble l'indiquer, vous pouvez utiliser le filtre wp_list_pages
comme ceci:
add_filter ('wp_list_pages','wpse241119_replace_class',10,3);
function wpse241119_replace_class ($output, $r, $pages) {
$output = str_replace ('page-item number', 'hvr-underline', $output);
return $output;
}
S'il n'y a aucune raison de vous arrêter, vous pouvez résoudre ce problème simplement en ajoutant une classe à ul et en utilisant un sélecteur plus complexe dans votre code CSS ou JavaScript:
$children = wp_list_pages( 'title_li=&child_of='.$post->ID.'&echo=0' );
if ( $children) : ?>
<ul class="menu wpse241119_list">
<?php echo $children; ?>
</ul>
<?php endif;
Ensuite, adressez chaque li
en tant que ul.wpse241119_list li
ou, si la liste peut être imbriquée, ul.wpse241119_list > li
pour intercepter les éléments de liste de niveau supérieur.