Добавить свои классы :first and :last в меню WordPress

14 марта 2016

Чтобы в меню WordPress отображались классы для первого и последнего пункта меню, необходимо поправить файл function.php и добавить в него заветные строки:

add_filter( 'wp_nav_menu_objects', 'tgm_filter_menu_class', 10, 2 );
/**
* Filters the first and last nav menu objects in your menus
* to add custom classes.
*
* @since 1.0.0
*
* @param object $objects An array of nav menu objects
* @param object $args Nav menu object args
* @return object $objects Amended array of nav menu objects with new class
*/
function tgm_filter_menu_class( $objects, $args ) {
  // Only apply the classes to the primary navigation menu
  if ( isset( $args->theme_location ) )
    if ( 'primary' !== $args->theme_location )
      return $objects;
  // Add "first-menu-item" class to the first menu object
  $objects[1]->classes[] = 'first-menu-item';
  // Add "last-menu-item" class to the last menu object
  $objects[count( $objects )]->classes[] = 'last-menu-item';
  // Return the menu objects
  return $objects;
}