Nettoyer body_class et post_class

WordPress nous propose par défaut toute une ribambelle de classes dans body et article. C’est très gentil à lui mais la plupart sont inutiles, il est donc intéressant d’alléger un peu son code HTML. On va pas non plus gagner des brouettes de Ko, mais c’est toujours ça de gagné.

post_class

Imaginez un article WordPress avec 4 catégories et 10 mots clés, regardons la balise article:

<article class="post-5 post type-post status-publish format-standard hentry category-dessert category-facile category-nos-coups-de-coeur category-tarte tag-canelle tag-citron tag-debutant tag-farine tag-four tag-miam tag-miel tag-pomme tag-rapide tag-sucre" id="post-5">

Outch. Violent. Si vous ne donnez pas de style particulier à vos articles en fonction d’un mot clé ou d’une catégorie, optimisez! La fonction post_class nous offre beaucoup (trop) de classes, nettoyons un peu tout ça.

function redpik_clean_post_class($classes) {
  foreach ($classes as $k => $class) {
    if( 0 === strpos( $class, 'tag-' )
      || 0 === strpos( $class, 'category-' )
      || 0 === strpos( $class, 'post-' )
      || 0 === strpos( $class, 'type-' )
      || $class == 'status-publish'
      || $class == 'format-standard' )
      unset($classes[$k]);
  }
  return $classes;
}
add_filter('post_class','redpik_clean_post_class');

Explications

Avec cette fonction (à placer simplement dans functions.php) nous supprimons les classes:

  • tag-SLUGTAG
  • category-SLUGCATEGORIE
  • post-ID
  • type-post
  • status-publish
  • format-standard

et pour nettoyer les classes du body?

Même principe, la fonction body_class nous donne un paquet de classes qui ne vont pas forcément servir, donc:

function redpik_clean_body_class($classes) {
  foreach ($classes as $k => $class) {
    if( 0 === strpos( $class, 'postid-' )
      || 0 === strpos( $class, 'page-id-' )
      || $class == 'page-template-default'  )
      unset($classes[$k]);
  }
  return $classes;
}
add_filter('body_class','redpik_clean_body_class');

Voilà. À utiliser (et à adapter) sur tous vos projets, ça coûte rien.

un commentaire
  1. Elmet dit :

    On optimise très peu mais effectivement ça coûte rien! merci!

Laisser une réponse