Change the body classname for a Wordpress template page

When you create a template page like 'template-about.php' in your theme, WordPress add this ugly class name page-template-template-about-php in the body. So we'll edit this.

Sun Sep 23 2012

Open the functions.php and add this following code for renaming page-template-template-about-php to page-template-about.

// Rename '.page-template-template-name-php' to '.page-template-name'.

function rename_template_body_class( $classes ) {
  foreach ( $classes as $k =>  $v ) {
    if ( substr($v, 0, 22) == 'page-template-template' ) {
      $classes[ $k ] = 'page-' . substr( $v, 14, -4 );
    }
  }
  return $classes;
}
add_filter( 'body_class', 'rename_template_body_class' );