Добавление пользовательского класса в тег body с использованием настраиваемых полей

Есть определенные должности, в которых я хочу вручную добавить пользовательский класс тела к пользовательским полям.

Как мне это сделать, добавляя класс в тег body, когда к сообщению добавляется определенное пользовательское поле?

Я пробовал следующее, но пользовательские поля имя tagbody не отображается в раскрывающемся tagbody :

 add_filter( 'body_tag', 'body_tag_name' ); add_filter( 'get_the_body_tag_name', 'body_tag_name' ); function body_tag_name( $name ) { global $post; $btag = get_post_meta( $post->ID, 'tagbody', true ); if ( $btag ) $name = $btag; return $name; } 

Вы хотите использовать фильтр body_class .

 function prefix_add_body_class( $classes ) { global $post; // good to check if( ! is_single() || 'post' !== get_post_type() ) { return $classes; } $btag = get_post_meta( $post->ID, 'tagbody', true ); if ( empty( $btag ) ) { return $classes; } $classes[] = $btag; return $classes; } add_filter( 'body_class', 'prefix_add_body_class' ) 

РЕДАКТИРОВАТЬ:

Вы написали мне в комментариях, что тема – ваша собственная тема. Поэтому вам не нужно делать это через фильтр. Просто делайте это прямо в своей теме.

Отредактируйте файл header.php следующим образом.

 // some code above $classes = array(); if( is_single() && 'post' === get_post_type() ) { $btag = get_post_meta( $post->ID, 'tagbody', true ); if( ! empty( $btag ) ) { $classes[] = $btag; } } ?> <body <?php body_class( $classes ); ?>> <?php // some code below