add_filter( ‘body_class’, function )
Glossary overview

add_filter( ‘body_class’, function )

Что такое add_filter( 'body_class', ... )?

Это фильтр WordPress, который позволяет изменять список CSS-классов, применяемых к тегу <body> на любой странице сайта.

🔸 Функция, которую ты передаёшь, должна возвращать массив классов, в который ты можешь добавить, изменить или удалить элементы.

🔧 Пример базовой функции:

function my_custom_body_class( $classes ) {
    $classes[] = 'my-extra-class'; // добавляем свой класс
    return $classes;
}
add_filter( 'body_class', 'my_custom_body_class' );

На выходе HTML будет:

<body class="page page-id-7 my-extra-class">

🔹 Практический пример — добавить класс, если это страница товара WooCommerce и нет цены:

add_filter( 'body_class', 'add_body_class_if_no_price' );
function add_body_class_if_no_price( $classes ) {
    if ( is_product() ) {
        global $product;

        if ( ! is_a( $product, 'WC_Product' ) ) {
            $product = wc_get_product( get_the_ID() );
        }

        if ( $product && $product->get_price() === '' ) {
            $classes[] = 'no-price';
        }
    }
    return $classes;
}

🔍 Объяснение:

  • is_product() — проверяем, что это сингл-страница товара WooCommerce.
  • $product->get_price() === '' — проверяем, что цена не задана.
  • Добавляем класс no-price в массив.