Browse: Home / Snippets /

Add LearnDash course category to body class

Contents


Snippet #

Important: All snippets are provided as-is without support or guarantees. These snippets are provided as guidelines for advanced users looking to customize LearnDash. For any additional help or support with these snippets, we recommend reaching out to a LearnDash Expert.

// Output LearnDash classes inside of WP Body Class
add_filter('body_class','add_category_to_single');
function add_category_to_single($classes) {
	if (is_single() ) {
		global $post;
		// a) Ensure $post is not empty. 
		// b) Ensure $post is a WP_Post object.
		// c) Ensure $post is a LD Course or Lesson or Topic.
		if ( ( $post ) && ( is_a( $post, 'WP_Post' ) ) ) {
			if ( $post->post_type == 'sfwd-courses' ) { 
				// Get the post terms from 'ld_course_category'. 
				$terms = get_the_terms( $post->ID, 'ld_course_category' ); 
			}
			else if ( $post->post_type == 'sfwd-lessons' ) { // Get the post terms from 'ld_lessons_category'. 
				$terms = get_the_terms( $post->ID, 'ld_lesson_category' ); 
			}
			else if ( $post->post_type == 'sfwd-topic' ) { // Get the post terms from 'ld_topic_category'. 
				$terms = get_the_terms( $post->ID, 'ld_topic_category' ) ; 
			}
			// Check that there are terms and not an error. 
			if ( ( isset( $terms ) ) && ( ! is_wp_error( $terms ) ) ) {
				foreach( $terms as $category ) { 
					// add category slug to the $classes array 
					$classes[] = $category->slug; 
				}
			}
		}
	}

	// return the $classes array
	return $classes;
}