The page_css_class WordPress PHP filter allows you to modify the list of CSS classes applied to each page item in a list.
Usage
add_filter('page_css_class', 'your_custom_function', 10, 5);
function your_custom_function($css_class, $page, $depth, $args, $current_page_id) {
// your custom code here
return $css_class;
}
Parameters
$css_class(string[]): An array of CSS classes to be applied to each list item.$page(WP_Post): Page data object.$depth(int): Depth of the page, used for padding.$args(array): An array of arguments.$current_page_id(int): ID of the current page.
More information
See WordPress Developer Resources: page_css_class
Examples
Add a custom CSS class to all page items
This example adds a custom CSS class “my-custom-class” to all page items.
add_filter('page_css_class', 'add_custom_class_to_page_items', 10, 5);
function add_custom_class_to_page_items($css_class, $page, $depth, $args, $current_page_id) {
$css_class[] = 'my-custom-class';
return $css_class;
}
Add a depth-based CSS class
This example adds a depth-based CSS class to each page item (e.g., “depth-1”, “depth-2”).
add_filter('page_css_class', 'add_depth_based_class', 10, 5);
function add_depth_based_class($css_class, $page, $depth, $args, $current_page_id) {
$css_class[] = 'depth-' . ($depth + 1);
return $css_class;
}
Highlight the current page
This example adds the “current-page” CSS class to the current page item.
add_filter('page_css_class', 'highlight_current_page', 10, 5);
function highlight_current_page($css_class, $page, $depth, $args, $current_page_id) {
if ($page->ID == $current_page_id) {
$css_class[] = 'current-page';
}
return $css_class;
}
Remove all default CSS classes
This example removes all default CSS classes from page items.
add_filter('page_css_class', 'remove_all_default_classes', 10, 5);
function remove_all_default_classes($css_class, $page, $depth, $args, $current_page_id) {
return array();
}
Add a custom class to top-level pages only
This example adds the “top-level-page” CSS class to top-level pages (depth 0).
add_filter('page_css_class', 'add_custom_class_to_top_level_pages', 10, 5);
function add_custom_class_to_top_level_pages($css_class, $page, $depth, $args, $current_page_id) {
if ($depth == 0) {
$css_class[] = 'top-level-page';
}
return $css_class;
}