web-dev-qa-db-fra.com

Ajout d'une classe de corps avec ACF

J'ai créé un champ de bouton radio avec ACF afin que l'administrateur puisse spécifier une couleur. Par exemple:

  • bleu bleu
  • rose: rose

J'aimerais que ceci soit affiché en tant que classe via <body <?php body_class(); ?> dans header.php. Est-ce possible?

Je suis en train de sortir la classe dans header.php comme ceci:

<div id="page" class="site <?php the_field('package_colour',$post->ID); ?>">
2
Sam

Accédez au filtre body_class et ajoutez-y votre champ. Il peut être préférable d’obtenir l’ID de get_queried_object_id() au lieu de get_the_ID() .

add_filter( 'body_class', 'wpse_20160118__body_class' );

function wpse_20160118__body_class( $classes ) {

    if ( $package_colour = get_field( 'package_colour', get_queried_object_id() ) ) {

        $package_colour  = esc_attr( trim( $package_colour ) );

        $classes[]       = $package_colour;
    }

    return $classes;
}
4
jgraup