Как добавить класс тела на основе пользовательского таксономического термина

Я пытаюсь вставить пули пользовательских таксономий в качестве классов в тег открытия тела на определенных страницах WordPress. То, что я до сих пор вызывает ошибки.

Я нашел немного помощи с примерами здесь и здесь , и он работает, за исключением того, что он дает ошибку на любой странице, которая не имеет термина из таксономии «раздела».

Ошибка:

Warning: join() [function.join]: Invalid arguments passed in /home/*****/public_html/example.com/wp-includes/post-template.php on line 387 

и код:

 // add classes to body based on custom taxonomy ('sections') // examples: section-about-us, section-start, section-nyc function section_id_class($classes) { global $post; $section_terms = get_the_terms($post->ID, 'section'); if ($section_terms && !is_wp_error($section_terms)) { $section_name = array(); foreach ($section_terms as $term) { $classes[] = 'section-' . $term->slug; } return $classes; } } add_filter('body_class', 'section_id_class'); , // add classes to body based on custom taxonomy ('sections') // examples: section-about-us, section-start, section-nyc function section_id_class($classes) { global $post; $section_terms = get_the_terms($post->ID, 'section'); if ($section_terms && !is_wp_error($section_terms)) { $section_name = array(); foreach ($section_terms as $term) { $classes[] = 'section-' . $term->slug; } return $classes; } } add_filter('body_class', 'section_id_class'); 

Какова задача $section_name ? Также вы должны получить доход; вы, если оператор убьют возврат по умолчанию. Важно, если ваш оператор if не работает.

возможно, это работает, но не проверено, пишите с нуля.

 add_filter( 'body_class', 'section_id_class' ); // add classes to body based on custom taxonomy ('sections') // examples: section-about-us, section-start, section-nyc function section_id_class( $classes ) { global $post; $section_terms = get_the_terms( $post->ID, 'section' ); if ( $section_terms && ! is_wp_error( $section_terms ) ) { foreach ($section_terms as $term) { $classes[] = 'section-' . $term->slug; } } return $classes; } , add_filter( 'body_class', 'section_id_class' ); // add classes to body based on custom taxonomy ('sections') // examples: section-about-us, section-start, section-nyc function section_id_class( $classes ) { global $post; $section_terms = get_the_terms( $post->ID, 'section' ); if ( $section_terms && ! is_wp_error( $section_terms ) ) { foreach ($section_terms as $term) { $classes[] = 'section-' . $term->slug; } } return $classes; } 

Это нормально, вы получите ошибки для страниц, которые не связаны с разделом. Убедитесь, что вы также возвращаете «$ classes», если ваш «if-statement» терпит неудачу.

Другими словами, убедитесь, что вы добавили еще что-нибудь.

 // add classes to body based on custom taxonomy ('sections') // examples: section-about-us, section-start, section-nyc function section_id_class($classes) { global $post; $section_terms = get_the_terms($post->ID, 'section'); if ($section_terms && !is_wp_error($section_terms)) { $section_name = array(); foreach ($section_terms as $term) { $classes[] = 'section-' . $term->slug; } else { $classes = 'default-class'; } return $classes; } } add_filter('body_class', 'section_id_class'); , // add classes to body based on custom taxonomy ('sections') // examples: section-about-us, section-start, section-nyc function section_id_class($classes) { global $post; $section_terms = get_the_terms($post->ID, 'section'); if ($section_terms && !is_wp_error($section_terms)) { $section_name = array(); foreach ($section_terms as $term) { $classes[] = 'section-' . $term->slug; } else { $classes = 'default-class'; } return $classes; } } add_filter('body_class', 'section_id_class'); 

что-то вроде этого