get_body_class

The timeline below displays how wordpress function get_body_class has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.4

/**
 * Retrieves an array of the class names for the body element.
 *
 * @since 2.8.0
 *
 * @global WP_Query $wp_query WordPress Query object.
 *
 * @param string|string[] $css_class Optional. Space-separated string or array of class names
 *                                   to add to the class list. Default empty.
 * @return string[] Array of class names.
 */
function get_body_class($css_class = '')
{
    global $wp_query;
    $classes = array();
    if (is_rtl()) {
        $classes[] = 'rtl';
    }
    if (is_front_page()) {
        $classes[] = 'home';
    }
    if (is_home()) {
        $classes[] = 'blog';
    }
    if (is_privacy_policy()) {
        $classes[] = 'privacy-policy';
    }
    if (is_archive()) {
        $classes[] = 'archive';
    }
    if (is_date()) {
        $classes[] = 'date';
    }
    if (is_search()) {
        $classes[] = 'search';
        $classes[] = $wp_query->posts ? 'search-results' : 'search-no-results';
    }
    if (is_paged()) {
        $classes[] = 'paged';
    }
    if (is_attachment()) {
        $classes[] = 'attachment';
    }
    if (is_404()) {
        $classes[] = 'error404';
    }
    if (is_singular()) {
        $post = $wp_query->get_queried_object();
        $post_id = $post->ID;
        $post_type = $post->post_type;
        if (is_page_template()) {
            $classes[] = "{$post_type}-template";
            $template_slug = get_page_template_slug($post_id);
            $template_parts = explode('/', $template_slug);
            foreach ($template_parts as $part) {
                $classes[] = "{$post_type}-template-" . sanitize_html_class(str_replace(array('.', '/'), '-', basename($part, '.php')));
            }
            $classes[] = "{$post_type}-template-" . sanitize_html_class(str_replace('.', '-', $template_slug));
        } else {
            $classes[] = "{$post_type}-template-default";
        }
        if (is_single()) {
            $classes[] = 'single';
            if (isset($post->post_type)) {
                $classes[] = 'single-' . sanitize_html_class($post->post_type, $post_id);
                $classes[] = 'postid-' . $post_id;
                // Post Format.
                if (post_type_supports($post->post_type, 'post-formats')) {
                    $post_format = get_post_format($post->ID);
                    if ($post_format && !is_wp_error($post_format)) {
                        $classes[] = 'single-format-' . sanitize_html_class($post_format);
                    } else {
                        $classes[] = 'single-format-standard';
                    }
                }
            }
        }
        if (is_attachment()) {
            $mime_type = get_post_mime_type($post_id);
            $mime_prefix = array('application/', 'image/', 'text/', 'audio/', 'video/', 'music/');
            $classes[] = 'attachmentid-' . $post_id;
            $classes[] = 'attachment-' . str_replace($mime_prefix, '', $mime_type);
        } elseif (is_page()) {
            $classes[] = 'page';
            $classes[] = 'page-id-' . $post_id;
            if (get_pages(array('parent' => $post_id, 'number' => 1))) {
                $classes[] = 'page-parent';
            }
            if ($post->post_parent) {
                $classes[] = 'page-child';
                $classes[] = 'parent-pageid-' . $post->post_parent;
            }
        }
    } elseif (is_archive()) {
        if (is_post_type_archive()) {
            $classes[] = 'post-type-archive';
            $post_type = get_query_var('post_type');
            if (is_array($post_type)) {
                $post_type = reset($post_type);
            }
            $classes[] = 'post-type-archive-' . sanitize_html_class($post_type);
        } elseif (is_author()) {
            $author = $wp_query->get_queried_object();
            $classes[] = 'author';
            if (isset($author->user_nicename)) {
                $classes[] = 'author-' . sanitize_html_class($author->user_nicename, $author->ID);
                $classes[] = 'author-' . $author->ID;
            }
        } elseif (is_category()) {
            $cat = $wp_query->get_queried_object();
            $classes[] = 'category';
            if (isset($cat->term_id)) {
                $cat_class = sanitize_html_class($cat->slug, $cat->term_id);
                if (is_numeric($cat_class) || !trim($cat_class, '-')) {
                    $cat_class = $cat->term_id;
                }
                $classes[] = 'category-' . $cat_class;
                $classes[] = 'category-' . $cat->term_id;
            }
        } elseif (is_tag()) {
            $tag = $wp_query->get_queried_object();
            $classes[] = 'tag';
            if (isset($tag->term_id)) {
                $tag_class = sanitize_html_class($tag->slug, $tag->term_id);
                if (is_numeric($tag_class) || !trim($tag_class, '-')) {
                    $tag_class = $tag->term_id;
                }
                $classes[] = 'tag-' . $tag_class;
                $classes[] = 'tag-' . $tag->term_id;
            }
        } elseif (is_tax()) {
            $term = $wp_query->get_queried_object();
            if (isset($term->term_id)) {
                $term_class = sanitize_html_class($term->slug, $term->term_id);
                if (is_numeric($term_class) || !trim($term_class, '-')) {
                    $term_class = $term->term_id;
                }
                $classes[] = 'tax-' . sanitize_html_class($term->taxonomy);
                $classes[] = 'term-' . $term_class;
                $classes[] = 'term-' . $term->term_id;
            }
        }
    }
    if (is_user_logged_in()) {
        $classes[] = 'logged-in';
    }
    if (is_admin_bar_showing()) {
        $classes[] = 'admin-bar';
        $classes[] = 'no-customize-support';
    }
    if (current_theme_supports('custom-background') && (get_background_color() !== get_theme_support('custom-background', 'default-color') || get_background_image())) {
        $classes[] = 'custom-background';
    }
    if (has_custom_logo()) {
        $classes[] = 'wp-custom-logo';
    }
    if (current_theme_supports('responsive-embeds')) {
        $classes[] = 'wp-embed-responsive';
    }
    $page = $wp_query->get('page');
    if (!$page || $page < 2) {
        $page = $wp_query->get('paged');
    }
    if ($page && $page > 1 && !is_404()) {
        $classes[] = 'paged-' . $page;
        if (is_single()) {
            $classes[] = 'single-paged-' . $page;
        } elseif (is_page()) {
            $classes[] = 'page-paged-' . $page;
        } elseif (is_category()) {
            $classes[] = 'category-paged-' . $page;
        } elseif (is_tag()) {
            $classes[] = 'tag-paged-' . $page;
        } elseif (is_date()) {
            $classes[] = 'date-paged-' . $page;
        } elseif (is_author()) {
            $classes[] = 'author-paged-' . $page;
        } elseif (is_search()) {
            $classes[] = 'search-paged-' . $page;
        } elseif (is_post_type_archive()) {
            $classes[] = 'post-type-paged-' . $page;
        }
    }
    if (!empty($css_class)) {
        if (!is_array($css_class)) {
            $css_class = preg_split('#\s+#', $css_class);
        }
        $classes = array_merge($classes, $css_class);
    } else {
        // Ensure that we always coerce class to being an array.
        $css_class = array();
    }
    $classes = array_map('esc_attr', $classes);
    /**
     * Filters the list of CSS body class names for the current post or page.
     *
     * @since 2.8.0
     *
     * @param string[] $classes   An array of body class names.
     * @param string[] $css_class An array of additional class names added to the body.
     */
    $classes = apply_filters('body_class', $classes, $css_class);
    return array_unique($classes);
}

WordPress Version: 6.2

/**
 * Retrieves an array of the class names for the body element.
 *
 * @since 2.8.0
 *
 * @global WP_Query $wp_query WordPress Query object.
 *
 * @param string|string[] $css_class Optional. Space-separated string or array of class names
 *                                   to add to the class list. Default empty.
 * @return string[] Array of class names.
 */
function get_body_class($css_class = '')
{
    global $wp_query;
    $classes = array();
    if (is_rtl()) {
        $classes[] = 'rtl';
    }
    if (is_front_page()) {
        $classes[] = 'home';
    }
    if (is_home()) {
        $classes[] = 'blog';
    }
    if (is_privacy_policy()) {
        $classes[] = 'privacy-policy';
    }
    if (is_archive()) {
        $classes[] = 'archive';
    }
    if (is_date()) {
        $classes[] = 'date';
    }
    if (is_search()) {
        $classes[] = 'search';
        $classes[] = $wp_query->posts ? 'search-results' : 'search-no-results';
    }
    if (is_paged()) {
        $classes[] = 'paged';
    }
    if (is_attachment()) {
        $classes[] = 'attachment';
    }
    if (is_404()) {
        $classes[] = 'error404';
    }
    if (is_singular()) {
        $post_id = $wp_query->get_queried_object_id();
        $post = $wp_query->get_queried_object();
        $post_type = $post->post_type;
        if (is_page_template()) {
            $classes[] = "{$post_type}-template";
            $template_slug = get_page_template_slug($post_id);
            $template_parts = explode('/', $template_slug);
            foreach ($template_parts as $part) {
                $classes[] = "{$post_type}-template-" . sanitize_html_class(str_replace(array('.', '/'), '-', basename($part, '.php')));
            }
            $classes[] = "{$post_type}-template-" . sanitize_html_class(str_replace('.', '-', $template_slug));
        } else {
            $classes[] = "{$post_type}-template-default";
        }
        if (is_single()) {
            $classes[] = 'single';
            if (isset($post->post_type)) {
                $classes[] = 'single-' . sanitize_html_class($post->post_type, $post_id);
                $classes[] = 'postid-' . $post_id;
                // Post Format.
                if (post_type_supports($post->post_type, 'post-formats')) {
                    $post_format = get_post_format($post->ID);
                    if ($post_format && !is_wp_error($post_format)) {
                        $classes[] = 'single-format-' . sanitize_html_class($post_format);
                    } else {
                        $classes[] = 'single-format-standard';
                    }
                }
            }
        }
        if (is_attachment()) {
            $mime_type = get_post_mime_type($post_id);
            $mime_prefix = array('application/', 'image/', 'text/', 'audio/', 'video/', 'music/');
            $classes[] = 'attachmentid-' . $post_id;
            $classes[] = 'attachment-' . str_replace($mime_prefix, '', $mime_type);
        } elseif (is_page()) {
            $classes[] = 'page';
            $page_id = $wp_query->get_queried_object_id();
            $post = get_post($page_id);
            $classes[] = 'page-id-' . $page_id;
            if (get_pages(array('parent' => $page_id, 'number' => 1))) {
                $classes[] = 'page-parent';
            }
            if ($post->post_parent) {
                $classes[] = 'page-child';
                $classes[] = 'parent-pageid-' . $post->post_parent;
            }
        }
    } elseif (is_archive()) {
        if (is_post_type_archive()) {
            $classes[] = 'post-type-archive';
            $post_type = get_query_var('post_type');
            if (is_array($post_type)) {
                $post_type = reset($post_type);
            }
            $classes[] = 'post-type-archive-' . sanitize_html_class($post_type);
        } elseif (is_author()) {
            $author = $wp_query->get_queried_object();
            $classes[] = 'author';
            if (isset($author->user_nicename)) {
                $classes[] = 'author-' . sanitize_html_class($author->user_nicename, $author->ID);
                $classes[] = 'author-' . $author->ID;
            }
        } elseif (is_category()) {
            $cat = $wp_query->get_queried_object();
            $classes[] = 'category';
            if (isset($cat->term_id)) {
                $cat_class = sanitize_html_class($cat->slug, $cat->term_id);
                if (is_numeric($cat_class) || !trim($cat_class, '-')) {
                    $cat_class = $cat->term_id;
                }
                $classes[] = 'category-' . $cat_class;
                $classes[] = 'category-' . $cat->term_id;
            }
        } elseif (is_tag()) {
            $tag = $wp_query->get_queried_object();
            $classes[] = 'tag';
            if (isset($tag->term_id)) {
                $tag_class = sanitize_html_class($tag->slug, $tag->term_id);
                if (is_numeric($tag_class) || !trim($tag_class, '-')) {
                    $tag_class = $tag->term_id;
                }
                $classes[] = 'tag-' . $tag_class;
                $classes[] = 'tag-' . $tag->term_id;
            }
        } elseif (is_tax()) {
            $term = $wp_query->get_queried_object();
            if (isset($term->term_id)) {
                $term_class = sanitize_html_class($term->slug, $term->term_id);
                if (is_numeric($term_class) || !trim($term_class, '-')) {
                    $term_class = $term->term_id;
                }
                $classes[] = 'tax-' . sanitize_html_class($term->taxonomy);
                $classes[] = 'term-' . $term_class;
                $classes[] = 'term-' . $term->term_id;
            }
        }
    }
    if (is_user_logged_in()) {
        $classes[] = 'logged-in';
    }
    if (is_admin_bar_showing()) {
        $classes[] = 'admin-bar';
        $classes[] = 'no-customize-support';
    }
    if (current_theme_supports('custom-background') && (get_background_color() !== get_theme_support('custom-background', 'default-color') || get_background_image())) {
        $classes[] = 'custom-background';
    }
    if (has_custom_logo()) {
        $classes[] = 'wp-custom-logo';
    }
    if (current_theme_supports('responsive-embeds')) {
        $classes[] = 'wp-embed-responsive';
    }
    $page = $wp_query->get('page');
    if (!$page || $page < 2) {
        $page = $wp_query->get('paged');
    }
    if ($page && $page > 1 && !is_404()) {
        $classes[] = 'paged-' . $page;
        if (is_single()) {
            $classes[] = 'single-paged-' . $page;
        } elseif (is_page()) {
            $classes[] = 'page-paged-' . $page;
        } elseif (is_category()) {
            $classes[] = 'category-paged-' . $page;
        } elseif (is_tag()) {
            $classes[] = 'tag-paged-' . $page;
        } elseif (is_date()) {
            $classes[] = 'date-paged-' . $page;
        } elseif (is_author()) {
            $classes[] = 'author-paged-' . $page;
        } elseif (is_search()) {
            $classes[] = 'search-paged-' . $page;
        } elseif (is_post_type_archive()) {
            $classes[] = 'post-type-paged-' . $page;
        }
    }
    if (!empty($css_class)) {
        if (!is_array($css_class)) {
            $css_class = preg_split('#\s+#', $css_class);
        }
        $classes = array_merge($classes, $css_class);
    } else {
        // Ensure that we always coerce class to being an array.
        $css_class = array();
    }
    $classes = array_map('esc_attr', $classes);
    /**
     * Filters the list of CSS body class names for the current post or page.
     *
     * @since 2.8.0
     *
     * @param string[] $classes   An array of body class names.
     * @param string[] $css_class An array of additional class names added to the body.
     */
    $classes = apply_filters('body_class', $classes, $css_class);
    return array_unique($classes);
}

WordPress Version: 5.4

/**
 * Retrieves an array of the class names for the body element.
 *
 * @since 2.8.0
 *
 * @global WP_Query $wp_query WordPress Query object.
 *
 * @param string|string[] $class Space-separated string or array of class names to add to the class list.
 * @return string[] Array of class names.
 */
function get_body_class($class = '')
{
    global $wp_query;
    $classes = array();
    if (is_rtl()) {
        $classes[] = 'rtl';
    }
    if (is_front_page()) {
        $classes[] = 'home';
    }
    if (is_home()) {
        $classes[] = 'blog';
    }
    if (is_privacy_policy()) {
        $classes[] = 'privacy-policy';
    }
    if (is_archive()) {
        $classes[] = 'archive';
    }
    if (is_date()) {
        $classes[] = 'date';
    }
    if (is_search()) {
        $classes[] = 'search';
        $classes[] = $wp_query->posts ? 'search-results' : 'search-no-results';
    }
    if (is_paged()) {
        $classes[] = 'paged';
    }
    if (is_attachment()) {
        $classes[] = 'attachment';
    }
    if (is_404()) {
        $classes[] = 'error404';
    }
    if (is_singular()) {
        $post_id = $wp_query->get_queried_object_id();
        $post = $wp_query->get_queried_object();
        $post_type = $post->post_type;
        if (is_page_template()) {
            $classes[] = "{$post_type}-template";
            $template_slug = get_page_template_slug($post_id);
            $template_parts = explode('/', $template_slug);
            foreach ($template_parts as $part) {
                $classes[] = "{$post_type}-template-" . sanitize_html_class(str_replace(array('.', '/'), '-', basename($part, '.php')));
            }
            $classes[] = "{$post_type}-template-" . sanitize_html_class(str_replace('.', '-', $template_slug));
        } else {
            $classes[] = "{$post_type}-template-default";
        }
        if (is_single()) {
            $classes[] = 'single';
            if (isset($post->post_type)) {
                $classes[] = 'single-' . sanitize_html_class($post->post_type, $post_id);
                $classes[] = 'postid-' . $post_id;
                // Post Format.
                if (post_type_supports($post->post_type, 'post-formats')) {
                    $post_format = get_post_format($post->ID);
                    if ($post_format && !is_wp_error($post_format)) {
                        $classes[] = 'single-format-' . sanitize_html_class($post_format);
                    } else {
                        $classes[] = 'single-format-standard';
                    }
                }
            }
        }
        if (is_attachment()) {
            $mime_type = get_post_mime_type($post_id);
            $mime_prefix = array('application/', 'image/', 'text/', 'audio/', 'video/', 'music/');
            $classes[] = 'attachmentid-' . $post_id;
            $classes[] = 'attachment-' . str_replace($mime_prefix, '', $mime_type);
        } elseif (is_page()) {
            $classes[] = 'page';
            $page_id = $wp_query->get_queried_object_id();
            $post = get_post($page_id);
            $classes[] = 'page-id-' . $page_id;
            if (get_pages(array('parent' => $page_id, 'number' => 1))) {
                $classes[] = 'page-parent';
            }
            if ($post->post_parent) {
                $classes[] = 'page-child';
                $classes[] = 'parent-pageid-' . $post->post_parent;
            }
        }
    } elseif (is_archive()) {
        if (is_post_type_archive()) {
            $classes[] = 'post-type-archive';
            $post_type = get_query_var('post_type');
            if (is_array($post_type)) {
                $post_type = reset($post_type);
            }
            $classes[] = 'post-type-archive-' . sanitize_html_class($post_type);
        } elseif (is_author()) {
            $author = $wp_query->get_queried_object();
            $classes[] = 'author';
            if (isset($author->user_nicename)) {
                $classes[] = 'author-' . sanitize_html_class($author->user_nicename, $author->ID);
                $classes[] = 'author-' . $author->ID;
            }
        } elseif (is_category()) {
            $cat = $wp_query->get_queried_object();
            $classes[] = 'category';
            if (isset($cat->term_id)) {
                $cat_class = sanitize_html_class($cat->slug, $cat->term_id);
                if (is_numeric($cat_class) || !trim($cat_class, '-')) {
                    $cat_class = $cat->term_id;
                }
                $classes[] = 'category-' . $cat_class;
                $classes[] = 'category-' . $cat->term_id;
            }
        } elseif (is_tag()) {
            $tag = $wp_query->get_queried_object();
            $classes[] = 'tag';
            if (isset($tag->term_id)) {
                $tag_class = sanitize_html_class($tag->slug, $tag->term_id);
                if (is_numeric($tag_class) || !trim($tag_class, '-')) {
                    $tag_class = $tag->term_id;
                }
                $classes[] = 'tag-' . $tag_class;
                $classes[] = 'tag-' . $tag->term_id;
            }
        } elseif (is_tax()) {
            $term = $wp_query->get_queried_object();
            if (isset($term->term_id)) {
                $term_class = sanitize_html_class($term->slug, $term->term_id);
                if (is_numeric($term_class) || !trim($term_class, '-')) {
                    $term_class = $term->term_id;
                }
                $classes[] = 'tax-' . sanitize_html_class($term->taxonomy);
                $classes[] = 'term-' . $term_class;
                $classes[] = 'term-' . $term->term_id;
            }
        }
    }
    if (is_user_logged_in()) {
        $classes[] = 'logged-in';
    }
    if (is_admin_bar_showing()) {
        $classes[] = 'admin-bar';
        $classes[] = 'no-customize-support';
    }
    if (current_theme_supports('custom-background') && (get_background_color() !== get_theme_support('custom-background', 'default-color') || get_background_image())) {
        $classes[] = 'custom-background';
    }
    if (has_custom_logo()) {
        $classes[] = 'wp-custom-logo';
    }
    if (current_theme_supports('responsive-embeds')) {
        $classes[] = 'wp-embed-responsive';
    }
    $page = $wp_query->get('page');
    if (!$page || $page < 2) {
        $page = $wp_query->get('paged');
    }
    if ($page && $page > 1 && !is_404()) {
        $classes[] = 'paged-' . $page;
        if (is_single()) {
            $classes[] = 'single-paged-' . $page;
        } elseif (is_page()) {
            $classes[] = 'page-paged-' . $page;
        } elseif (is_category()) {
            $classes[] = 'category-paged-' . $page;
        } elseif (is_tag()) {
            $classes[] = 'tag-paged-' . $page;
        } elseif (is_date()) {
            $classes[] = 'date-paged-' . $page;
        } elseif (is_author()) {
            $classes[] = 'author-paged-' . $page;
        } elseif (is_search()) {
            $classes[] = 'search-paged-' . $page;
        } elseif (is_post_type_archive()) {
            $classes[] = 'post-type-paged-' . $page;
        }
    }
    if (!empty($class)) {
        if (!is_array($class)) {
            $class = preg_split('#\s+#', $class);
        }
        $classes = array_merge($classes, $class);
    } else {
        // Ensure that we always coerce class to being an array.
        $class = array();
    }
    $classes = array_map('esc_attr', $classes);
    /**
     * Filters the list of CSS body class names for the current post or page.
     *
     * @since 2.8.0
     *
     * @param string[] $classes An array of body class names.
     * @param string[] $class   An array of additional class names added to the body.
     */
    $classes = apply_filters('body_class', $classes, $class);
    return array_unique($classes);
}

WordPress Version: 5.3

/**
 * Retrieves an array of the class names for the body element.
 *
 * @since 2.8.0
 *
 * @global WP_Query $wp_query WordPress Query object.
 *
 * @param string|string[] $class Space-separated string or array of class names to add to the class list.
 * @return string[] Array of class names.
 */
function get_body_class($class = '')
{
    global $wp_query;
    $classes = array();
    if (is_rtl()) {
        $classes[] = 'rtl';
    }
    if (is_front_page()) {
        $classes[] = 'home';
    }
    if (is_home()) {
        $classes[] = 'blog';
    }
    if (is_privacy_policy()) {
        $classes[] = 'privacy-policy';
    }
    if (is_archive()) {
        $classes[] = 'archive';
    }
    if (is_date()) {
        $classes[] = 'date';
    }
    if (is_search()) {
        $classes[] = 'search';
        $classes[] = $wp_query->posts ? 'search-results' : 'search-no-results';
    }
    if (is_paged()) {
        $classes[] = 'paged';
    }
    if (is_attachment()) {
        $classes[] = 'attachment';
    }
    if (is_404()) {
        $classes[] = 'error404';
    }
    if (is_singular()) {
        $post_id = $wp_query->get_queried_object_id();
        $post = $wp_query->get_queried_object();
        $post_type = $post->post_type;
        if (is_page_template()) {
            $classes[] = "{$post_type}-template";
            $template_slug = get_page_template_slug($post_id);
            $template_parts = explode('/', $template_slug);
            foreach ($template_parts as $part) {
                $classes[] = "{$post_type}-template-" . sanitize_html_class(str_replace(array('.', '/'), '-', basename($part, '.php')));
            }
            $classes[] = "{$post_type}-template-" . sanitize_html_class(str_replace('.', '-', $template_slug));
        } else {
            $classes[] = "{$post_type}-template-default";
        }
        if (is_single()) {
            $classes[] = 'single';
            if (isset($post->post_type)) {
                $classes[] = 'single-' . sanitize_html_class($post->post_type, $post_id);
                $classes[] = 'postid-' . $post_id;
                // Post Format
                if (post_type_supports($post->post_type, 'post-formats')) {
                    $post_format = get_post_format($post->ID);
                    if ($post_format && !is_wp_error($post_format)) {
                        $classes[] = 'single-format-' . sanitize_html_class($post_format);
                    } else {
                        $classes[] = 'single-format-standard';
                    }
                }
            }
        }
        if (is_attachment()) {
            $mime_type = get_post_mime_type($post_id);
            $mime_prefix = array('application/', 'image/', 'text/', 'audio/', 'video/', 'music/');
            $classes[] = 'attachmentid-' . $post_id;
            $classes[] = 'attachment-' . str_replace($mime_prefix, '', $mime_type);
        } elseif (is_page()) {
            $classes[] = 'page';
            $page_id = $wp_query->get_queried_object_id();
            $post = get_post($page_id);
            $classes[] = 'page-id-' . $page_id;
            if (get_pages(array('parent' => $page_id, 'number' => 1))) {
                $classes[] = 'page-parent';
            }
            if ($post->post_parent) {
                $classes[] = 'page-child';
                $classes[] = 'parent-pageid-' . $post->post_parent;
            }
        }
    } elseif (is_archive()) {
        if (is_post_type_archive()) {
            $classes[] = 'post-type-archive';
            $post_type = get_query_var('post_type');
            if (is_array($post_type)) {
                $post_type = reset($post_type);
            }
            $classes[] = 'post-type-archive-' . sanitize_html_class($post_type);
        } elseif (is_author()) {
            $author = $wp_query->get_queried_object();
            $classes[] = 'author';
            if (isset($author->user_nicename)) {
                $classes[] = 'author-' . sanitize_html_class($author->user_nicename, $author->ID);
                $classes[] = 'author-' . $author->ID;
            }
        } elseif (is_category()) {
            $cat = $wp_query->get_queried_object();
            $classes[] = 'category';
            if (isset($cat->term_id)) {
                $cat_class = sanitize_html_class($cat->slug, $cat->term_id);
                if (is_numeric($cat_class) || !trim($cat_class, '-')) {
                    $cat_class = $cat->term_id;
                }
                $classes[] = 'category-' . $cat_class;
                $classes[] = 'category-' . $cat->term_id;
            }
        } elseif (is_tag()) {
            $tag = $wp_query->get_queried_object();
            $classes[] = 'tag';
            if (isset($tag->term_id)) {
                $tag_class = sanitize_html_class($tag->slug, $tag->term_id);
                if (is_numeric($tag_class) || !trim($tag_class, '-')) {
                    $tag_class = $tag->term_id;
                }
                $classes[] = 'tag-' . $tag_class;
                $classes[] = 'tag-' . $tag->term_id;
            }
        } elseif (is_tax()) {
            $term = $wp_query->get_queried_object();
            if (isset($term->term_id)) {
                $term_class = sanitize_html_class($term->slug, $term->term_id);
                if (is_numeric($term_class) || !trim($term_class, '-')) {
                    $term_class = $term->term_id;
                }
                $classes[] = 'tax-' . sanitize_html_class($term->taxonomy);
                $classes[] = 'term-' . $term_class;
                $classes[] = 'term-' . $term->term_id;
            }
        }
    }
    if (is_user_logged_in()) {
        $classes[] = 'logged-in';
    }
    if (is_admin_bar_showing()) {
        $classes[] = 'admin-bar';
        $classes[] = 'no-customize-support';
    }
    if (current_theme_supports('custom-background') && (get_background_color() !== get_theme_support('custom-background', 'default-color') || get_background_image())) {
        $classes[] = 'custom-background';
    }
    if (has_custom_logo()) {
        $classes[] = 'wp-custom-logo';
    }
    if (current_theme_supports('responsive-embeds')) {
        $classes[] = 'wp-embed-responsive';
    }
    $page = $wp_query->get('page');
    if (!$page || $page < 2) {
        $page = $wp_query->get('paged');
    }
    if ($page && $page > 1 && !is_404()) {
        $classes[] = 'paged-' . $page;
        if (is_single()) {
            $classes[] = 'single-paged-' . $page;
        } elseif (is_page()) {
            $classes[] = 'page-paged-' . $page;
        } elseif (is_category()) {
            $classes[] = 'category-paged-' . $page;
        } elseif (is_tag()) {
            $classes[] = 'tag-paged-' . $page;
        } elseif (is_date()) {
            $classes[] = 'date-paged-' . $page;
        } elseif (is_author()) {
            $classes[] = 'author-paged-' . $page;
        } elseif (is_search()) {
            $classes[] = 'search-paged-' . $page;
        } elseif (is_post_type_archive()) {
            $classes[] = 'post-type-paged-' . $page;
        }
    }
    if (!empty($class)) {
        if (!is_array($class)) {
            $class = preg_split('#\s+#', $class);
        }
        $classes = array_merge($classes, $class);
    } else {
        // Ensure that we always coerce class to being an array.
        $class = array();
    }
    $classes = array_map('esc_attr', $classes);
    /**
     * Filters the list of CSS body class names for the current post or page.
     *
     * @since 2.8.0
     *
     * @param string[] $classes An array of body class names.
     * @param string[] $class   An array of additional class names added to the body.
     */
    $classes = apply_filters('body_class', $classes, $class);
    return array_unique($classes);
}

WordPress Version: 5.2

/**
 * Retrieves an array of the class names for the body element.
 *
 * @since 2.8.0
 *
 * @global WP_Query $wp_query
 *
 * @param string|string[] $class Space-separated string or array of class names to add to the class list.
 * @return string[] Array of class names.
 */
function get_body_class($class = '')
{
    global $wp_query;
    $classes = array();
    if (is_rtl()) {
        $classes[] = 'rtl';
    }
    if (is_front_page()) {
        $classes[] = 'home';
    }
    if (is_home()) {
        $classes[] = 'blog';
    }
    if (is_privacy_policy()) {
        $classes[] = 'privacy-policy';
    }
    if (is_archive()) {
        $classes[] = 'archive';
    }
    if (is_date()) {
        $classes[] = 'date';
    }
    if (is_search()) {
        $classes[] = 'search';
        $classes[] = $wp_query->posts ? 'search-results' : 'search-no-results';
    }
    if (is_paged()) {
        $classes[] = 'paged';
    }
    if (is_attachment()) {
        $classes[] = 'attachment';
    }
    if (is_404()) {
        $classes[] = 'error404';
    }
    if (is_singular()) {
        $post_id = $wp_query->get_queried_object_id();
        $post = $wp_query->get_queried_object();
        $post_type = $post->post_type;
        if (is_page_template()) {
            $classes[] = "{$post_type}-template";
            $template_slug = get_page_template_slug($post_id);
            $template_parts = explode('/', $template_slug);
            foreach ($template_parts as $part) {
                $classes[] = "{$post_type}-template-" . sanitize_html_class(str_replace(array('.', '/'), '-', basename($part, '.php')));
            }
            $classes[] = "{$post_type}-template-" . sanitize_html_class(str_replace('.', '-', $template_slug));
        } else {
            $classes[] = "{$post_type}-template-default";
        }
        if (is_single()) {
            $classes[] = 'single';
            if (isset($post->post_type)) {
                $classes[] = 'single-' . sanitize_html_class($post->post_type, $post_id);
                $classes[] = 'postid-' . $post_id;
                // Post Format
                if (post_type_supports($post->post_type, 'post-formats')) {
                    $post_format = get_post_format($post->ID);
                    if ($post_format && !is_wp_error($post_format)) {
                        $classes[] = 'single-format-' . sanitize_html_class($post_format);
                    } else {
                        $classes[] = 'single-format-standard';
                    }
                }
            }
        }
        if (is_attachment()) {
            $mime_type = get_post_mime_type($post_id);
            $mime_prefix = array('application/', 'image/', 'text/', 'audio/', 'video/', 'music/');
            $classes[] = 'attachmentid-' . $post_id;
            $classes[] = 'attachment-' . str_replace($mime_prefix, '', $mime_type);
        } elseif (is_page()) {
            $classes[] = 'page';
            $page_id = $wp_query->get_queried_object_id();
            $post = get_post($page_id);
            $classes[] = 'page-id-' . $page_id;
            if (get_pages(array('parent' => $page_id, 'number' => 1))) {
                $classes[] = 'page-parent';
            }
            if ($post->post_parent) {
                $classes[] = 'page-child';
                $classes[] = 'parent-pageid-' . $post->post_parent;
            }
        }
    } elseif (is_archive()) {
        if (is_post_type_archive()) {
            $classes[] = 'post-type-archive';
            $post_type = get_query_var('post_type');
            if (is_array($post_type)) {
                $post_type = reset($post_type);
            }
            $classes[] = 'post-type-archive-' . sanitize_html_class($post_type);
        } elseif (is_author()) {
            $author = $wp_query->get_queried_object();
            $classes[] = 'author';
            if (isset($author->user_nicename)) {
                $classes[] = 'author-' . sanitize_html_class($author->user_nicename, $author->ID);
                $classes[] = 'author-' . $author->ID;
            }
        } elseif (is_category()) {
            $cat = $wp_query->get_queried_object();
            $classes[] = 'category';
            if (isset($cat->term_id)) {
                $cat_class = sanitize_html_class($cat->slug, $cat->term_id);
                if (is_numeric($cat_class) || !trim($cat_class, '-')) {
                    $cat_class = $cat->term_id;
                }
                $classes[] = 'category-' . $cat_class;
                $classes[] = 'category-' . $cat->term_id;
            }
        } elseif (is_tag()) {
            $tag = $wp_query->get_queried_object();
            $classes[] = 'tag';
            if (isset($tag->term_id)) {
                $tag_class = sanitize_html_class($tag->slug, $tag->term_id);
                if (is_numeric($tag_class) || !trim($tag_class, '-')) {
                    $tag_class = $tag->term_id;
                }
                $classes[] = 'tag-' . $tag_class;
                $classes[] = 'tag-' . $tag->term_id;
            }
        } elseif (is_tax()) {
            $term = $wp_query->get_queried_object();
            if (isset($term->term_id)) {
                $term_class = sanitize_html_class($term->slug, $term->term_id);
                if (is_numeric($term_class) || !trim($term_class, '-')) {
                    $term_class = $term->term_id;
                }
                $classes[] = 'tax-' . sanitize_html_class($term->taxonomy);
                $classes[] = 'term-' . $term_class;
                $classes[] = 'term-' . $term->term_id;
            }
        }
    }
    if (is_user_logged_in()) {
        $classes[] = 'logged-in';
    }
    if (is_admin_bar_showing()) {
        $classes[] = 'admin-bar';
        $classes[] = 'no-customize-support';
    }
    if (current_theme_supports('custom-background') && (get_background_color() !== get_theme_support('custom-background', 'default-color') || get_background_image())) {
        $classes[] = 'custom-background';
    }
    if (has_custom_logo()) {
        $classes[] = 'wp-custom-logo';
    }
    if (current_theme_supports('responsive-embeds')) {
        $classes[] = 'wp-embed-responsive';
    }
    $page = $wp_query->get('page');
    if (!$page || $page < 2) {
        $page = $wp_query->get('paged');
    }
    if ($page && $page > 1 && !is_404()) {
        $classes[] = 'paged-' . $page;
        if (is_single()) {
            $classes[] = 'single-paged-' . $page;
        } elseif (is_page()) {
            $classes[] = 'page-paged-' . $page;
        } elseif (is_category()) {
            $classes[] = 'category-paged-' . $page;
        } elseif (is_tag()) {
            $classes[] = 'tag-paged-' . $page;
        } elseif (is_date()) {
            $classes[] = 'date-paged-' . $page;
        } elseif (is_author()) {
            $classes[] = 'author-paged-' . $page;
        } elseif (is_search()) {
            $classes[] = 'search-paged-' . $page;
        } elseif (is_post_type_archive()) {
            $classes[] = 'post-type-paged-' . $page;
        }
    }
    if (!empty($class)) {
        if (!is_array($class)) {
            $class = preg_split('#\s+#', $class);
        }
        $classes = array_merge($classes, $class);
    } else {
        // Ensure that we always coerce class to being an array.
        $class = array();
    }
    $classes = array_map('esc_attr', $classes);
    /**
     * Filters the list of CSS body class names for the current post or page.
     *
     * @since 2.8.0
     *
     * @param string[] $classes An array of body class names.
     * @param string[] $class   An array of additional class names added to the body.
     */
    $classes = apply_filters('body_class', $classes, $class);
    return array_unique($classes);
}

WordPress Version: 5.1

/**
 * Retrieves an array of the class names for the body element.
 *
 * @since 2.8.0
 *
 * @global WP_Query $wp_query
 *
 * @param string|string[] $class Space-separated string or array of class names to add to the class list.
 * @return string[] Array of class names.
 */
function get_body_class($class = '')
{
    global $wp_query;
    $classes = array();
    if (is_rtl()) {
        $classes[] = 'rtl';
    }
    if (is_front_page()) {
        $classes[] = 'home';
    }
    if (is_home()) {
        $classes[] = 'blog';
    }
    if (is_archive()) {
        $classes[] = 'archive';
    }
    if (is_date()) {
        $classes[] = 'date';
    }
    if (is_search()) {
        $classes[] = 'search';
        $classes[] = $wp_query->posts ? 'search-results' : 'search-no-results';
    }
    if (is_paged()) {
        $classes[] = 'paged';
    }
    if (is_attachment()) {
        $classes[] = 'attachment';
    }
    if (is_404()) {
        $classes[] = 'error404';
    }
    if (is_singular()) {
        $post_id = $wp_query->get_queried_object_id();
        $post = $wp_query->get_queried_object();
        $post_type = $post->post_type;
        if (is_page_template()) {
            $classes[] = "{$post_type}-template";
            $template_slug = get_page_template_slug($post_id);
            $template_parts = explode('/', $template_slug);
            foreach ($template_parts as $part) {
                $classes[] = "{$post_type}-template-" . sanitize_html_class(str_replace(array('.', '/'), '-', basename($part, '.php')));
            }
            $classes[] = "{$post_type}-template-" . sanitize_html_class(str_replace('.', '-', $template_slug));
        } else {
            $classes[] = "{$post_type}-template-default";
        }
        if (is_single()) {
            $classes[] = 'single';
            if (isset($post->post_type)) {
                $classes[] = 'single-' . sanitize_html_class($post->post_type, $post_id);
                $classes[] = 'postid-' . $post_id;
                // Post Format
                if (post_type_supports($post->post_type, 'post-formats')) {
                    $post_format = get_post_format($post->ID);
                    if ($post_format && !is_wp_error($post_format)) {
                        $classes[] = 'single-format-' . sanitize_html_class($post_format);
                    } else {
                        $classes[] = 'single-format-standard';
                    }
                }
            }
        }
        if (is_attachment()) {
            $mime_type = get_post_mime_type($post_id);
            $mime_prefix = array('application/', 'image/', 'text/', 'audio/', 'video/', 'music/');
            $classes[] = 'attachmentid-' . $post_id;
            $classes[] = 'attachment-' . str_replace($mime_prefix, '', $mime_type);
        } elseif (is_page()) {
            $classes[] = 'page';
            $page_id = $wp_query->get_queried_object_id();
            $post = get_post($page_id);
            $classes[] = 'page-id-' . $page_id;
            if (get_pages(array('parent' => $page_id, 'number' => 1))) {
                $classes[] = 'page-parent';
            }
            if ($post->post_parent) {
                $classes[] = 'page-child';
                $classes[] = 'parent-pageid-' . $post->post_parent;
            }
        }
    } elseif (is_archive()) {
        if (is_post_type_archive()) {
            $classes[] = 'post-type-archive';
            $post_type = get_query_var('post_type');
            if (is_array($post_type)) {
                $post_type = reset($post_type);
            }
            $classes[] = 'post-type-archive-' . sanitize_html_class($post_type);
        } elseif (is_author()) {
            $author = $wp_query->get_queried_object();
            $classes[] = 'author';
            if (isset($author->user_nicename)) {
                $classes[] = 'author-' . sanitize_html_class($author->user_nicename, $author->ID);
                $classes[] = 'author-' . $author->ID;
            }
        } elseif (is_category()) {
            $cat = $wp_query->get_queried_object();
            $classes[] = 'category';
            if (isset($cat->term_id)) {
                $cat_class = sanitize_html_class($cat->slug, $cat->term_id);
                if (is_numeric($cat_class) || !trim($cat_class, '-')) {
                    $cat_class = $cat->term_id;
                }
                $classes[] = 'category-' . $cat_class;
                $classes[] = 'category-' . $cat->term_id;
            }
        } elseif (is_tag()) {
            $tag = $wp_query->get_queried_object();
            $classes[] = 'tag';
            if (isset($tag->term_id)) {
                $tag_class = sanitize_html_class($tag->slug, $tag->term_id);
                if (is_numeric($tag_class) || !trim($tag_class, '-')) {
                    $tag_class = $tag->term_id;
                }
                $classes[] = 'tag-' . $tag_class;
                $classes[] = 'tag-' . $tag->term_id;
            }
        } elseif (is_tax()) {
            $term = $wp_query->get_queried_object();
            if (isset($term->term_id)) {
                $term_class = sanitize_html_class($term->slug, $term->term_id);
                if (is_numeric($term_class) || !trim($term_class, '-')) {
                    $term_class = $term->term_id;
                }
                $classes[] = 'tax-' . sanitize_html_class($term->taxonomy);
                $classes[] = 'term-' . $term_class;
                $classes[] = 'term-' . $term->term_id;
            }
        }
    }
    if (is_user_logged_in()) {
        $classes[] = 'logged-in';
    }
    if (is_admin_bar_showing()) {
        $classes[] = 'admin-bar';
        $classes[] = 'no-customize-support';
    }
    if (get_background_color() !== get_theme_support('custom-background', 'default-color') || get_background_image()) {
        $classes[] = 'custom-background';
    }
    if (has_custom_logo()) {
        $classes[] = 'wp-custom-logo';
    }
    if (current_theme_supports('responsive-embeds')) {
        $classes[] = 'wp-embed-responsive';
    }
    $page = $wp_query->get('page');
    if (!$page || $page < 2) {
        $page = $wp_query->get('paged');
    }
    if ($page && $page > 1 && !is_404()) {
        $classes[] = 'paged-' . $page;
        if (is_single()) {
            $classes[] = 'single-paged-' . $page;
        } elseif (is_page()) {
            $classes[] = 'page-paged-' . $page;
        } elseif (is_category()) {
            $classes[] = 'category-paged-' . $page;
        } elseif (is_tag()) {
            $classes[] = 'tag-paged-' . $page;
        } elseif (is_date()) {
            $classes[] = 'date-paged-' . $page;
        } elseif (is_author()) {
            $classes[] = 'author-paged-' . $page;
        } elseif (is_search()) {
            $classes[] = 'search-paged-' . $page;
        } elseif (is_post_type_archive()) {
            $classes[] = 'post-type-paged-' . $page;
        }
    }
    if (!empty($class)) {
        if (!is_array($class)) {
            $class = preg_split('#\s+#', $class);
        }
        $classes = array_merge($classes, $class);
    } else {
        // Ensure that we always coerce class to being an array.
        $class = array();
    }
    $classes = array_map('esc_attr', $classes);
    /**
     * Filters the list of CSS body class names for the current post or page.
     *
     * @since 2.8.0
     *
     * @param string[] $classes An array of body class names.
     * @param string[] $class   An array of additional class names added to the body.
     */
    $classes = apply_filters('body_class', $classes, $class);
    return array_unique($classes);
}

WordPress Version: 5.0

/**
 * Retrieve the classes for the body element as an array.
 *
 * @since 2.8.0
 *
 * @global WP_Query $wp_query
 *
 * @param string|array $class One or more classes to add to the class list.
 * @return array Array of classes.
 */
function get_body_class($class = '')
{
    global $wp_query;
    $classes = array();
    if (is_rtl()) {
        $classes[] = 'rtl';
    }
    if (is_front_page()) {
        $classes[] = 'home';
    }
    if (is_home()) {
        $classes[] = 'blog';
    }
    if (is_archive()) {
        $classes[] = 'archive';
    }
    if (is_date()) {
        $classes[] = 'date';
    }
    if (is_search()) {
        $classes[] = 'search';
        $classes[] = $wp_query->posts ? 'search-results' : 'search-no-results';
    }
    if (is_paged()) {
        $classes[] = 'paged';
    }
    if (is_attachment()) {
        $classes[] = 'attachment';
    }
    if (is_404()) {
        $classes[] = 'error404';
    }
    if (is_singular()) {
        $post_id = $wp_query->get_queried_object_id();
        $post = $wp_query->get_queried_object();
        $post_type = $post->post_type;
        if (is_page_template()) {
            $classes[] = "{$post_type}-template";
            $template_slug = get_page_template_slug($post_id);
            $template_parts = explode('/', $template_slug);
            foreach ($template_parts as $part) {
                $classes[] = "{$post_type}-template-" . sanitize_html_class(str_replace(array('.', '/'), '-', basename($part, '.php')));
            }
            $classes[] = "{$post_type}-template-" . sanitize_html_class(str_replace('.', '-', $template_slug));
        } else {
            $classes[] = "{$post_type}-template-default";
        }
        if (is_single()) {
            $classes[] = 'single';
            if (isset($post->post_type)) {
                $classes[] = 'single-' . sanitize_html_class($post->post_type, $post_id);
                $classes[] = 'postid-' . $post_id;
                // Post Format
                if (post_type_supports($post->post_type, 'post-formats')) {
                    $post_format = get_post_format($post->ID);
                    if ($post_format && !is_wp_error($post_format)) {
                        $classes[] = 'single-format-' . sanitize_html_class($post_format);
                    } else {
                        $classes[] = 'single-format-standard';
                    }
                }
            }
        }
        if (is_attachment()) {
            $mime_type = get_post_mime_type($post_id);
            $mime_prefix = array('application/', 'image/', 'text/', 'audio/', 'video/', 'music/');
            $classes[] = 'attachmentid-' . $post_id;
            $classes[] = 'attachment-' . str_replace($mime_prefix, '', $mime_type);
        } elseif (is_page()) {
            $classes[] = 'page';
            $page_id = $wp_query->get_queried_object_id();
            $post = get_post($page_id);
            $classes[] = 'page-id-' . $page_id;
            if (get_pages(array('parent' => $page_id, 'number' => 1))) {
                $classes[] = 'page-parent';
            }
            if ($post->post_parent) {
                $classes[] = 'page-child';
                $classes[] = 'parent-pageid-' . $post->post_parent;
            }
        }
    } elseif (is_archive()) {
        if (is_post_type_archive()) {
            $classes[] = 'post-type-archive';
            $post_type = get_query_var('post_type');
            if (is_array($post_type)) {
                $post_type = reset($post_type);
            }
            $classes[] = 'post-type-archive-' . sanitize_html_class($post_type);
        } elseif (is_author()) {
            $author = $wp_query->get_queried_object();
            $classes[] = 'author';
            if (isset($author->user_nicename)) {
                $classes[] = 'author-' . sanitize_html_class($author->user_nicename, $author->ID);
                $classes[] = 'author-' . $author->ID;
            }
        } elseif (is_category()) {
            $cat = $wp_query->get_queried_object();
            $classes[] = 'category';
            if (isset($cat->term_id)) {
                $cat_class = sanitize_html_class($cat->slug, $cat->term_id);
                if (is_numeric($cat_class) || !trim($cat_class, '-')) {
                    $cat_class = $cat->term_id;
                }
                $classes[] = 'category-' . $cat_class;
                $classes[] = 'category-' . $cat->term_id;
            }
        } elseif (is_tag()) {
            $tag = $wp_query->get_queried_object();
            $classes[] = 'tag';
            if (isset($tag->term_id)) {
                $tag_class = sanitize_html_class($tag->slug, $tag->term_id);
                if (is_numeric($tag_class) || !trim($tag_class, '-')) {
                    $tag_class = $tag->term_id;
                }
                $classes[] = 'tag-' . $tag_class;
                $classes[] = 'tag-' . $tag->term_id;
            }
        } elseif (is_tax()) {
            $term = $wp_query->get_queried_object();
            if (isset($term->term_id)) {
                $term_class = sanitize_html_class($term->slug, $term->term_id);
                if (is_numeric($term_class) || !trim($term_class, '-')) {
                    $term_class = $term->term_id;
                }
                $classes[] = 'tax-' . sanitize_html_class($term->taxonomy);
                $classes[] = 'term-' . $term_class;
                $classes[] = 'term-' . $term->term_id;
            }
        }
    }
    if (is_user_logged_in()) {
        $classes[] = 'logged-in';
    }
    if (is_admin_bar_showing()) {
        $classes[] = 'admin-bar';
        $classes[] = 'no-customize-support';
    }
    if (get_background_color() !== get_theme_support('custom-background', 'default-color') || get_background_image()) {
        $classes[] = 'custom-background';
    }
    if (has_custom_logo()) {
        $classes[] = 'wp-custom-logo';
    }
    if (current_theme_supports('responsive-embeds')) {
        $classes[] = 'wp-embed-responsive';
    }
    $page = $wp_query->get('page');
    if (!$page || $page < 2) {
        $page = $wp_query->get('paged');
    }
    if ($page && $page > 1 && !is_404()) {
        $classes[] = 'paged-' . $page;
        if (is_single()) {
            $classes[] = 'single-paged-' . $page;
        } elseif (is_page()) {
            $classes[] = 'page-paged-' . $page;
        } elseif (is_category()) {
            $classes[] = 'category-paged-' . $page;
        } elseif (is_tag()) {
            $classes[] = 'tag-paged-' . $page;
        } elseif (is_date()) {
            $classes[] = 'date-paged-' . $page;
        } elseif (is_author()) {
            $classes[] = 'author-paged-' . $page;
        } elseif (is_search()) {
            $classes[] = 'search-paged-' . $page;
        } elseif (is_post_type_archive()) {
            $classes[] = 'post-type-paged-' . $page;
        }
    }
    if (!empty($class)) {
        if (!is_array($class)) {
            $class = preg_split('#\s+#', $class);
        }
        $classes = array_merge($classes, $class);
    } else {
        // Ensure that we always coerce class to being an array.
        $class = array();
    }
    $classes = array_map('esc_attr', $classes);
    /**
     * Filters the list of CSS body classes for the current post or page.
     *
     * @since 2.8.0
     *
     * @param array $classes An array of body classes.
     * @param array $class   An array of additional classes added to the body.
     */
    $classes = apply_filters('body_class', $classes, $class);
    return array_unique($classes);
}

WordPress Version: 4.7

/**
 * Retrieve the classes for the body element as an array.
 *
 * @since 2.8.0
 *
 * @global WP_Query $wp_query
 *
 * @param string|array $class One or more classes to add to the class list.
 * @return array Array of classes.
 */
function get_body_class($class = '')
{
    global $wp_query;
    $classes = array();
    if (is_rtl()) {
        $classes[] = 'rtl';
    }
    if (is_front_page()) {
        $classes[] = 'home';
    }
    if (is_home()) {
        $classes[] = 'blog';
    }
    if (is_archive()) {
        $classes[] = 'archive';
    }
    if (is_date()) {
        $classes[] = 'date';
    }
    if (is_search()) {
        $classes[] = 'search';
        $classes[] = $wp_query->posts ? 'search-results' : 'search-no-results';
    }
    if (is_paged()) {
        $classes[] = 'paged';
    }
    if (is_attachment()) {
        $classes[] = 'attachment';
    }
    if (is_404()) {
        $classes[] = 'error404';
    }
    if (is_singular()) {
        $post_id = $wp_query->get_queried_object_id();
        $post = $wp_query->get_queried_object();
        $post_type = $post->post_type;
        if (is_page_template()) {
            $classes[] = "{$post_type}-template";
            $template_slug = get_page_template_slug($post_id);
            $template_parts = explode('/', $template_slug);
            foreach ($template_parts as $part) {
                $classes[] = "{$post_type}-template-" . sanitize_html_class(str_replace(array('.', '/'), '-', basename($part, '.php')));
            }
            $classes[] = "{$post_type}-template-" . sanitize_html_class(str_replace('.', '-', $template_slug));
        } else {
            $classes[] = "{$post_type}-template-default";
        }
        if (is_single()) {
            $classes[] = 'single';
            if (isset($post->post_type)) {
                $classes[] = 'single-' . sanitize_html_class($post->post_type, $post_id);
                $classes[] = 'postid-' . $post_id;
                // Post Format
                if (post_type_supports($post->post_type, 'post-formats')) {
                    $post_format = get_post_format($post->ID);
                    if ($post_format && !is_wp_error($post_format)) {
                        $classes[] = 'single-format-' . sanitize_html_class($post_format);
                    } else {
                        $classes[] = 'single-format-standard';
                    }
                }
            }
        }
        if (is_attachment()) {
            $mime_type = get_post_mime_type($post_id);
            $mime_prefix = array('application/', 'image/', 'text/', 'audio/', 'video/', 'music/');
            $classes[] = 'attachmentid-' . $post_id;
            $classes[] = 'attachment-' . str_replace($mime_prefix, '', $mime_type);
        } elseif (is_page()) {
            $classes[] = 'page';
            $page_id = $wp_query->get_queried_object_id();
            $post = get_post($page_id);
            $classes[] = 'page-id-' . $page_id;
            if (get_pages(array('parent' => $page_id, 'number' => 1))) {
                $classes[] = 'page-parent';
            }
            if ($post->post_parent) {
                $classes[] = 'page-child';
                $classes[] = 'parent-pageid-' . $post->post_parent;
            }
        }
    } elseif (is_archive()) {
        if (is_post_type_archive()) {
            $classes[] = 'post-type-archive';
            $post_type = get_query_var('post_type');
            if (is_array($post_type)) {
                $post_type = reset($post_type);
            }
            $classes[] = 'post-type-archive-' . sanitize_html_class($post_type);
        } elseif (is_author()) {
            $author = $wp_query->get_queried_object();
            $classes[] = 'author';
            if (isset($author->user_nicename)) {
                $classes[] = 'author-' . sanitize_html_class($author->user_nicename, $author->ID);
                $classes[] = 'author-' . $author->ID;
            }
        } elseif (is_category()) {
            $cat = $wp_query->get_queried_object();
            $classes[] = 'category';
            if (isset($cat->term_id)) {
                $cat_class = sanitize_html_class($cat->slug, $cat->term_id);
                if (is_numeric($cat_class) || !trim($cat_class, '-')) {
                    $cat_class = $cat->term_id;
                }
                $classes[] = 'category-' . $cat_class;
                $classes[] = 'category-' . $cat->term_id;
            }
        } elseif (is_tag()) {
            $tag = $wp_query->get_queried_object();
            $classes[] = 'tag';
            if (isset($tag->term_id)) {
                $tag_class = sanitize_html_class($tag->slug, $tag->term_id);
                if (is_numeric($tag_class) || !trim($tag_class, '-')) {
                    $tag_class = $tag->term_id;
                }
                $classes[] = 'tag-' . $tag_class;
                $classes[] = 'tag-' . $tag->term_id;
            }
        } elseif (is_tax()) {
            $term = $wp_query->get_queried_object();
            if (isset($term->term_id)) {
                $term_class = sanitize_html_class($term->slug, $term->term_id);
                if (is_numeric($term_class) || !trim($term_class, '-')) {
                    $term_class = $term->term_id;
                }
                $classes[] = 'tax-' . sanitize_html_class($term->taxonomy);
                $classes[] = 'term-' . $term_class;
                $classes[] = 'term-' . $term->term_id;
            }
        }
    }
    if (is_user_logged_in()) {
        $classes[] = 'logged-in';
    }
    if (is_admin_bar_showing()) {
        $classes[] = 'admin-bar';
        $classes[] = 'no-customize-support';
    }
    if (get_background_color() !== get_theme_support('custom-background', 'default-color') || get_background_image()) {
        $classes[] = 'custom-background';
    }
    if (has_custom_logo()) {
        $classes[] = 'wp-custom-logo';
    }
    $page = $wp_query->get('page');
    if (!$page || $page < 2) {
        $page = $wp_query->get('paged');
    }
    if ($page && $page > 1 && !is_404()) {
        $classes[] = 'paged-' . $page;
        if (is_single()) {
            $classes[] = 'single-paged-' . $page;
        } elseif (is_page()) {
            $classes[] = 'page-paged-' . $page;
        } elseif (is_category()) {
            $classes[] = 'category-paged-' . $page;
        } elseif (is_tag()) {
            $classes[] = 'tag-paged-' . $page;
        } elseif (is_date()) {
            $classes[] = 'date-paged-' . $page;
        } elseif (is_author()) {
            $classes[] = 'author-paged-' . $page;
        } elseif (is_search()) {
            $classes[] = 'search-paged-' . $page;
        } elseif (is_post_type_archive()) {
            $classes[] = 'post-type-paged-' . $page;
        }
    }
    if (!empty($class)) {
        if (!is_array($class)) {
            $class = preg_split('#\s+#', $class);
        }
        $classes = array_merge($classes, $class);
    } else {
        // Ensure that we always coerce class to being an array.
        $class = array();
    }
    $classes = array_map('esc_attr', $classes);
    /**
     * Filters the list of CSS body classes for the current post or page.
     *
     * @since 2.8.0
     *
     * @param array $classes An array of body classes.
     * @param array $class   An array of additional classes added to the body.
     */
    $classes = apply_filters('body_class', $classes, $class);
    return array_unique($classes);
}

WordPress Version: 4.6

/**
 * Retrieve the classes for the body element as an array.
 *
 * @since 2.8.0
 *
 * @global WP_Query $wp_query
 *
 * @param string|array $class One or more classes to add to the class list.
 * @return array Array of classes.
 */
function get_body_class($class = '')
{
    global $wp_query;
    $classes = array();
    if (is_rtl()) {
        $classes[] = 'rtl';
    }
    if (is_front_page()) {
        $classes[] = 'home';
    }
    if (is_home()) {
        $classes[] = 'blog';
    }
    if (is_archive()) {
        $classes[] = 'archive';
    }
    if (is_date()) {
        $classes[] = 'date';
    }
    if (is_search()) {
        $classes[] = 'search';
        $classes[] = $wp_query->posts ? 'search-results' : 'search-no-results';
    }
    if (is_paged()) {
        $classes[] = 'paged';
    }
    if (is_attachment()) {
        $classes[] = 'attachment';
    }
    if (is_404()) {
        $classes[] = 'error404';
    }
    if (is_single()) {
        $post_id = $wp_query->get_queried_object_id();
        $post = $wp_query->get_queried_object();
        $classes[] = 'single';
        if (isset($post->post_type)) {
            $classes[] = 'single-' . sanitize_html_class($post->post_type, $post_id);
            $classes[] = 'postid-' . $post_id;
            // Post Format
            if (post_type_supports($post->post_type, 'post-formats')) {
                $post_format = get_post_format($post->ID);
                if ($post_format && !is_wp_error($post_format)) {
                    $classes[] = 'single-format-' . sanitize_html_class($post_format);
                } else {
                    $classes[] = 'single-format-standard';
                }
            }
        }
        if (is_attachment()) {
            $mime_type = get_post_mime_type($post_id);
            $mime_prefix = array('application/', 'image/', 'text/', 'audio/', 'video/', 'music/');
            $classes[] = 'attachmentid-' . $post_id;
            $classes[] = 'attachment-' . str_replace($mime_prefix, '', $mime_type);
        }
    } elseif (is_archive()) {
        if (is_post_type_archive()) {
            $classes[] = 'post-type-archive';
            $post_type = get_query_var('post_type');
            if (is_array($post_type)) {
                $post_type = reset($post_type);
            }
            $classes[] = 'post-type-archive-' . sanitize_html_class($post_type);
        } elseif (is_author()) {
            $author = $wp_query->get_queried_object();
            $classes[] = 'author';
            if (isset($author->user_nicename)) {
                $classes[] = 'author-' . sanitize_html_class($author->user_nicename, $author->ID);
                $classes[] = 'author-' . $author->ID;
            }
        } elseif (is_category()) {
            $cat = $wp_query->get_queried_object();
            $classes[] = 'category';
            if (isset($cat->term_id)) {
                $cat_class = sanitize_html_class($cat->slug, $cat->term_id);
                if (is_numeric($cat_class) || !trim($cat_class, '-')) {
                    $cat_class = $cat->term_id;
                }
                $classes[] = 'category-' . $cat_class;
                $classes[] = 'category-' . $cat->term_id;
            }
        } elseif (is_tag()) {
            $tag = $wp_query->get_queried_object();
            $classes[] = 'tag';
            if (isset($tag->term_id)) {
                $tag_class = sanitize_html_class($tag->slug, $tag->term_id);
                if (is_numeric($tag_class) || !trim($tag_class, '-')) {
                    $tag_class = $tag->term_id;
                }
                $classes[] = 'tag-' . $tag_class;
                $classes[] = 'tag-' . $tag->term_id;
            }
        } elseif (is_tax()) {
            $term = $wp_query->get_queried_object();
            if (isset($term->term_id)) {
                $term_class = sanitize_html_class($term->slug, $term->term_id);
                if (is_numeric($term_class) || !trim($term_class, '-')) {
                    $term_class = $term->term_id;
                }
                $classes[] = 'tax-' . sanitize_html_class($term->taxonomy);
                $classes[] = 'term-' . $term_class;
                $classes[] = 'term-' . $term->term_id;
            }
        }
    } elseif (is_page()) {
        $classes[] = 'page';
        $page_id = $wp_query->get_queried_object_id();
        $post = get_post($page_id);
        $classes[] = 'page-id-' . $page_id;
        if (get_pages(array('parent' => $page_id, 'number' => 1))) {
            $classes[] = 'page-parent';
        }
        if ($post->post_parent) {
            $classes[] = 'page-child';
            $classes[] = 'parent-pageid-' . $post->post_parent;
        }
        if (is_page_template()) {
            $classes[] = 'page-template';
            $template_slug = get_page_template_slug($page_id);
            $template_parts = explode('/', $template_slug);
            foreach ($template_parts as $part) {
                $classes[] = 'page-template-' . sanitize_html_class(str_replace(array('.', '/'), '-', basename($part, '.php')));
            }
            $classes[] = 'page-template-' . sanitize_html_class(str_replace('.', '-', $template_slug));
        } else {
            $classes[] = 'page-template-default';
        }
    }
    if (is_user_logged_in()) {
        $classes[] = 'logged-in';
    }
    if (is_admin_bar_showing()) {
        $classes[] = 'admin-bar';
        $classes[] = 'no-customize-support';
    }
    if (get_background_color() !== get_theme_support('custom-background', 'default-color') || get_background_image()) {
        $classes[] = 'custom-background';
    }
    if (has_custom_logo()) {
        $classes[] = 'wp-custom-logo';
    }
    $page = $wp_query->get('page');
    if (!$page || $page < 2) {
        $page = $wp_query->get('paged');
    }
    if ($page && $page > 1 && !is_404()) {
        $classes[] = 'paged-' . $page;
        if (is_single()) {
            $classes[] = 'single-paged-' . $page;
        } elseif (is_page()) {
            $classes[] = 'page-paged-' . $page;
        } elseif (is_category()) {
            $classes[] = 'category-paged-' . $page;
        } elseif (is_tag()) {
            $classes[] = 'tag-paged-' . $page;
        } elseif (is_date()) {
            $classes[] = 'date-paged-' . $page;
        } elseif (is_author()) {
            $classes[] = 'author-paged-' . $page;
        } elseif (is_search()) {
            $classes[] = 'search-paged-' . $page;
        } elseif (is_post_type_archive()) {
            $classes[] = 'post-type-paged-' . $page;
        }
    }
    if (!empty($class)) {
        if (!is_array($class)) {
            $class = preg_split('#\s+#', $class);
        }
        $classes = array_merge($classes, $class);
    } else {
        // Ensure that we always coerce class to being an array.
        $class = array();
    }
    $classes = array_map('esc_attr', $classes);
    /**
     * Filters the list of CSS body classes for the current post or page.
     *
     * @since 2.8.0
     *
     * @param array $classes An array of body classes.
     * @param array $class   An array of additional classes added to the body.
     */
    $classes = apply_filters('body_class', $classes, $class);
    return array_unique($classes);
}

WordPress Version: 5.1

/**
 * Retrieve the classes for the body element as an array.
 *
 * @since 2.8.0
 *
 * @global WP_Query $wp_query
 *
 * @param string|array $class One or more classes to add to the class list.
 * @return array Array of classes.
 */
function get_body_class($class = '')
{
    global $wp_query;
    $classes = array();
    if (is_rtl()) {
        $classes[] = 'rtl';
    }
    if (is_front_page()) {
        $classes[] = 'home';
    }
    if (is_home()) {
        $classes[] = 'blog';
    }
    if (is_archive()) {
        $classes[] = 'archive';
    }
    if (is_date()) {
        $classes[] = 'date';
    }
    if (is_search()) {
        $classes[] = 'search';
        $classes[] = $wp_query->posts ? 'search-results' : 'search-no-results';
    }
    if (is_paged()) {
        $classes[] = 'paged';
    }
    if (is_attachment()) {
        $classes[] = 'attachment';
    }
    if (is_404()) {
        $classes[] = 'error404';
    }
    if (is_single()) {
        $post_id = $wp_query->get_queried_object_id();
        $post = $wp_query->get_queried_object();
        $classes[] = 'single';
        if (isset($post->post_type)) {
            $classes[] = 'single-' . sanitize_html_class($post->post_type, $post_id);
            $classes[] = 'postid-' . $post_id;
            // Post Format
            if (post_type_supports($post->post_type, 'post-formats')) {
                $post_format = get_post_format($post->ID);
                if ($post_format && !is_wp_error($post_format)) {
                    $classes[] = 'single-format-' . sanitize_html_class($post_format);
                } else {
                    $classes[] = 'single-format-standard';
                }
            }
        }
        if (is_attachment()) {
            $mime_type = get_post_mime_type($post_id);
            $mime_prefix = array('application/', 'image/', 'text/', 'audio/', 'video/', 'music/');
            $classes[] = 'attachmentid-' . $post_id;
            $classes[] = 'attachment-' . str_replace($mime_prefix, '', $mime_type);
        }
    } elseif (is_archive()) {
        if (is_post_type_archive()) {
            $classes[] = 'post-type-archive';
            $post_type = get_query_var('post_type');
            if (is_array($post_type)) {
                $post_type = reset($post_type);
            }
            $classes[] = 'post-type-archive-' . sanitize_html_class($post_type);
        } elseif (is_author()) {
            $author = $wp_query->get_queried_object();
            $classes[] = 'author';
            if (isset($author->user_nicename)) {
                $classes[] = 'author-' . sanitize_html_class($author->user_nicename, $author->ID);
                $classes[] = 'author-' . $author->ID;
            }
        } elseif (is_category()) {
            $cat = $wp_query->get_queried_object();
            $classes[] = 'category';
            if (isset($cat->term_id)) {
                $cat_class = sanitize_html_class($cat->slug, $cat->term_id);
                if (is_numeric($cat_class) || !trim($cat_class, '-')) {
                    $cat_class = $cat->term_id;
                }
                $classes[] = 'category-' . $cat_class;
                $classes[] = 'category-' . $cat->term_id;
            }
        } elseif (is_tag()) {
            $tag = $wp_query->get_queried_object();
            $classes[] = 'tag';
            if (isset($tag->term_id)) {
                $tag_class = sanitize_html_class($tag->slug, $tag->term_id);
                if (is_numeric($tag_class) || !trim($tag_class, '-')) {
                    $tag_class = $tag->term_id;
                }
                $classes[] = 'tag-' . $tag_class;
                $classes[] = 'tag-' . $tag->term_id;
            }
        } elseif (is_tax()) {
            $term = $wp_query->get_queried_object();
            if (isset($term->term_id)) {
                $term_class = sanitize_html_class($term->slug, $term->term_id);
                if (is_numeric($term_class) || !trim($term_class, '-')) {
                    $term_class = $term->term_id;
                }
                $classes[] = 'tax-' . sanitize_html_class($term->taxonomy);
                $classes[] = 'term-' . $term_class;
                $classes[] = 'term-' . $term->term_id;
            }
        }
    } elseif (is_page()) {
        $classes[] = 'page';
        $page_id = $wp_query->get_queried_object_id();
        $post = get_post($page_id);
        $classes[] = 'page-id-' . $page_id;
        if (get_pages(array('parent' => $page_id, 'number' => 1))) {
            $classes[] = 'page-parent';
        }
        if ($post->post_parent) {
            $classes[] = 'page-child';
            $classes[] = 'parent-pageid-' . $post->post_parent;
        }
        if (is_page_template()) {
            $classes[] = 'page-template';
            $template_slug = get_page_template_slug($page_id);
            $template_parts = explode('/', $template_slug);
            foreach ($template_parts as $part) {
                $classes[] = 'page-template-' . sanitize_html_class(str_replace(array('.', '/'), '-', basename($part, '.php')));
            }
            $classes[] = 'page-template-' . sanitize_html_class(str_replace('.', '-', $template_slug));
        } else {
            $classes[] = 'page-template-default';
        }
    }
    if (is_user_logged_in()) {
        $classes[] = 'logged-in';
    }
    if (is_admin_bar_showing()) {
        $classes[] = 'admin-bar';
        $classes[] = 'no-customize-support';
    }
    if (get_background_color() !== get_theme_support('custom-background', 'default-color') || get_background_image()) {
        $classes[] = 'custom-background';
    }
    if (has_custom_logo()) {
        $classes[] = 'wp-custom-logo';
    }
    $page = $wp_query->get('page');
    if (!$page || $page < 2) {
        $page = $wp_query->get('paged');
    }
    if ($page && $page > 1 && !is_404()) {
        $classes[] = 'paged-' . $page;
        if (is_single()) {
            $classes[] = 'single-paged-' . $page;
        } elseif (is_page()) {
            $classes[] = 'page-paged-' . $page;
        } elseif (is_category()) {
            $classes[] = 'category-paged-' . $page;
        } elseif (is_tag()) {
            $classes[] = 'tag-paged-' . $page;
        } elseif (is_date()) {
            $classes[] = 'date-paged-' . $page;
        } elseif (is_author()) {
            $classes[] = 'author-paged-' . $page;
        } elseif (is_search()) {
            $classes[] = 'search-paged-' . $page;
        } elseif (is_post_type_archive()) {
            $classes[] = 'post-type-paged-' . $page;
        }
    }
    if (!empty($class)) {
        if (!is_array($class)) {
            $class = preg_split('#\s+#', $class);
        }
        $classes = array_merge($classes, $class);
    } else {
        // Ensure that we always coerce class to being an array.
        $class = array();
    }
    $classes = array_map('esc_attr', $classes);
    /**
     * Filter the list of CSS body classes for the current post or page.
     *
     * @since 2.8.0
     *
     * @param array $classes An array of body classes.
     * @param array $class   An array of additional classes added to the body.
     */
    $classes = apply_filters('body_class', $classes, $class);
    return array_unique($classes);
}

WordPress Version: 4.5

/**
 * Retrieve the classes for the body element as an array.
 *
 * @since 2.8.0
 *
 * @global WP_Query $wp_query
 *
 * @param string|array $class One or more classes to add to the class list.
 * @return array Array of classes.
 */
function get_body_class($class = '')
{
    global $wp_query;
    $classes = array();
    if (is_rtl()) {
        $classes[] = 'rtl';
    }
    if (is_front_page()) {
        $classes[] = 'home';
    }
    if (is_home()) {
        $classes[] = 'blog';
    }
    if (is_archive()) {
        $classes[] = 'archive';
    }
    if (is_date()) {
        $classes[] = 'date';
    }
    if (is_search()) {
        $classes[] = 'search';
        $classes[] = $wp_query->posts ? 'search-results' : 'search-no-results';
    }
    if (is_paged()) {
        $classes[] = 'paged';
    }
    if (is_attachment()) {
        $classes[] = 'attachment';
    }
    if (is_404()) {
        $classes[] = 'error404';
    }
    if (is_singular()) {
        $classes[] = 'singular';
    }
    if (is_single()) {
        $post_id = $wp_query->get_queried_object_id();
        $post = $wp_query->get_queried_object();
        $classes[] = 'single';
        if (isset($post->post_type)) {
            $classes[] = 'single-' . sanitize_html_class($post->post_type, $post_id);
            $classes[] = 'postid-' . $post_id;
            // Post Format
            if (post_type_supports($post->post_type, 'post-formats')) {
                $post_format = get_post_format($post->ID);
                if ($post_format && !is_wp_error($post_format)) {
                    $classes[] = 'single-format-' . sanitize_html_class($post_format);
                } else {
                    $classes[] = 'single-format-standard';
                }
            }
        }
        if (is_attachment()) {
            $mime_type = get_post_mime_type($post_id);
            $mime_prefix = array('application/', 'image/', 'text/', 'audio/', 'video/', 'music/');
            $classes[] = 'attachmentid-' . $post_id;
            $classes[] = 'attachment-' . str_replace($mime_prefix, '', $mime_type);
        }
    } elseif (is_archive()) {
        if (is_post_type_archive()) {
            $classes[] = 'post-type-archive';
            $post_type = get_query_var('post_type');
            if (is_array($post_type)) {
                $post_type = reset($post_type);
            }
            $classes[] = 'post-type-archive-' . sanitize_html_class($post_type);
        } elseif (is_author()) {
            $author = $wp_query->get_queried_object();
            $classes[] = 'author';
            if (isset($author->user_nicename)) {
                $classes[] = 'author-' . sanitize_html_class($author->user_nicename, $author->ID);
                $classes[] = 'author-' . $author->ID;
            }
        } elseif (is_category()) {
            $cat = $wp_query->get_queried_object();
            $classes[] = 'category';
            if (isset($cat->term_id)) {
                $cat_class = sanitize_html_class($cat->slug, $cat->term_id);
                if (is_numeric($cat_class) || !trim($cat_class, '-')) {
                    $cat_class = $cat->term_id;
                }
                $classes[] = 'category-' . $cat_class;
                $classes[] = 'category-' . $cat->term_id;
            }
        } elseif (is_tag()) {
            $tag = $wp_query->get_queried_object();
            $classes[] = 'tag';
            if (isset($tag->term_id)) {
                $tag_class = sanitize_html_class($tag->slug, $tag->term_id);
                if (is_numeric($tag_class) || !trim($tag_class, '-')) {
                    $tag_class = $tag->term_id;
                }
                $classes[] = 'tag-' . $tag_class;
                $classes[] = 'tag-' . $tag->term_id;
            }
        } elseif (is_tax()) {
            $term = $wp_query->get_queried_object();
            if (isset($term->term_id)) {
                $term_class = sanitize_html_class($term->slug, $term->term_id);
                if (is_numeric($term_class) || !trim($term_class, '-')) {
                    $term_class = $term->term_id;
                }
                $classes[] = 'tax-' . sanitize_html_class($term->taxonomy);
                $classes[] = 'term-' . $term_class;
                $classes[] = 'term-' . $term->term_id;
            }
        }
    } elseif (is_page()) {
        $classes[] = 'page';
        $page_id = $wp_query->get_queried_object_id();
        $post = get_post($page_id);
        $classes[] = 'page-id-' . $page_id;
        if (get_pages(array('parent' => $page_id, 'number' => 1))) {
            $classes[] = 'page-parent';
        }
        if ($post->post_parent) {
            $classes[] = 'page-child';
            $classes[] = 'parent-pageid-' . $post->post_parent;
        }
        if (is_page_template()) {
            $classes[] = 'page-template';
            $template_slug = get_page_template_slug($page_id);
            $template_parts = explode('/', $template_slug);
            foreach ($template_parts as $part) {
                $classes[] = 'page-template-' . sanitize_html_class(str_replace(array('.', '/'), '-', basename($part, '.php')));
            }
            $classes[] = 'page-template-' . sanitize_html_class(str_replace('.', '-', $template_slug));
        } else {
            $classes[] = 'page-template-default';
        }
    }
    if (is_user_logged_in()) {
        $classes[] = 'logged-in';
    }
    if (is_admin_bar_showing()) {
        $classes[] = 'admin-bar';
        $classes[] = 'no-customize-support';
    }
    if (get_background_color() !== get_theme_support('custom-background', 'default-color') || get_background_image()) {
        $classes[] = 'custom-background';
    }
    if (has_custom_logo()) {
        $classes[] = 'wp-custom-logo';
    }
    $page = $wp_query->get('page');
    if (!$page || $page < 2) {
        $page = $wp_query->get('paged');
    }
    if ($page && $page > 1 && !is_404()) {
        $classes[] = 'paged-' . $page;
        if (is_single()) {
            $classes[] = 'single-paged-' . $page;
        } elseif (is_page()) {
            $classes[] = 'page-paged-' . $page;
        } elseif (is_category()) {
            $classes[] = 'category-paged-' . $page;
        } elseif (is_tag()) {
            $classes[] = 'tag-paged-' . $page;
        } elseif (is_date()) {
            $classes[] = 'date-paged-' . $page;
        } elseif (is_author()) {
            $classes[] = 'author-paged-' . $page;
        } elseif (is_search()) {
            $classes[] = 'search-paged-' . $page;
        } elseif (is_post_type_archive()) {
            $classes[] = 'post-type-paged-' . $page;
        }
    }
    if (!empty($class)) {
        if (!is_array($class)) {
            $class = preg_split('#\s+#', $class);
        }
        $classes = array_merge($classes, $class);
    } else {
        // Ensure that we always coerce class to being an array.
        $class = array();
    }
    $classes = array_map('esc_attr', $classes);
    /**
     * Filter the list of CSS body classes for the current post or page.
     *
     * @since 2.8.0
     *
     * @param array $classes An array of body classes.
     * @param array $class   An array of additional classes added to the body.
     */
    $classes = apply_filters('body_class', $classes, $class);
    return array_unique($classes);
}

WordPress Version: 4.4

/**
 * Retrieve the classes for the body element as an array.
 *
 * @since 2.8.0
 *
 * @global WP_Query $wp_query
 *
 * @param string|array $class One or more classes to add to the class list.
 * @return array Array of classes.
 */
function get_body_class($class = '')
{
    global $wp_query;
    $classes = array();
    if (is_rtl()) {
        $classes[] = 'rtl';
    }
    if (is_front_page()) {
        $classes[] = 'home';
    }
    if (is_home()) {
        $classes[] = 'blog';
    }
    if (is_archive()) {
        $classes[] = 'archive';
    }
    if (is_date()) {
        $classes[] = 'date';
    }
    if (is_search()) {
        $classes[] = 'search';
        $classes[] = $wp_query->posts ? 'search-results' : 'search-no-results';
    }
    if (is_paged()) {
        $classes[] = 'paged';
    }
    if (is_attachment()) {
        $classes[] = 'attachment';
    }
    if (is_404()) {
        $classes[] = 'error404';
    }
    if (is_single()) {
        $post_id = $wp_query->get_queried_object_id();
        $post = $wp_query->get_queried_object();
        $classes[] = 'single';
        if (isset($post->post_type)) {
            $classes[] = 'single-' . sanitize_html_class($post->post_type, $post_id);
            $classes[] = 'postid-' . $post_id;
            // Post Format
            if (post_type_supports($post->post_type, 'post-formats')) {
                $post_format = get_post_format($post->ID);
                if ($post_format && !is_wp_error($post_format)) {
                    $classes[] = 'single-format-' . sanitize_html_class($post_format);
                } else {
                    $classes[] = 'single-format-standard';
                }
            }
        }
        if (is_attachment()) {
            $mime_type = get_post_mime_type($post_id);
            $mime_prefix = array('application/', 'image/', 'text/', 'audio/', 'video/', 'music/');
            $classes[] = 'attachmentid-' . $post_id;
            $classes[] = 'attachment-' . str_replace($mime_prefix, '', $mime_type);
        }
    } elseif (is_archive()) {
        if (is_post_type_archive()) {
            $classes[] = 'post-type-archive';
            $post_type = get_query_var('post_type');
            if (is_array($post_type)) {
                $post_type = reset($post_type);
            }
            $classes[] = 'post-type-archive-' . sanitize_html_class($post_type);
        } elseif (is_author()) {
            $author = $wp_query->get_queried_object();
            $classes[] = 'author';
            if (isset($author->user_nicename)) {
                $classes[] = 'author-' . sanitize_html_class($author->user_nicename, $author->ID);
                $classes[] = 'author-' . $author->ID;
            }
        } elseif (is_category()) {
            $cat = $wp_query->get_queried_object();
            $classes[] = 'category';
            if (isset($cat->term_id)) {
                $cat_class = sanitize_html_class($cat->slug, $cat->term_id);
                if (is_numeric($cat_class) || !trim($cat_class, '-')) {
                    $cat_class = $cat->term_id;
                }
                $classes[] = 'category-' . $cat_class;
                $classes[] = 'category-' . $cat->term_id;
            }
        } elseif (is_tag()) {
            $tag = $wp_query->get_queried_object();
            $classes[] = 'tag';
            if (isset($tag->term_id)) {
                $tag_class = sanitize_html_class($tag->slug, $tag->term_id);
                if (is_numeric($tag_class) || !trim($tag_class, '-')) {
                    $tag_class = $tag->term_id;
                }
                $classes[] = 'tag-' . $tag_class;
                $classes[] = 'tag-' . $tag->term_id;
            }
        } elseif (is_tax()) {
            $term = $wp_query->get_queried_object();
            if (isset($term->term_id)) {
                $term_class = sanitize_html_class($term->slug, $term->term_id);
                if (is_numeric($term_class) || !trim($term_class, '-')) {
                    $term_class = $term->term_id;
                }
                $classes[] = 'tax-' . sanitize_html_class($term->taxonomy);
                $classes[] = 'term-' . $term_class;
                $classes[] = 'term-' . $term->term_id;
            }
        }
    } elseif (is_page()) {
        $classes[] = 'page';
        $page_id = $wp_query->get_queried_object_id();
        $post = get_post($page_id);
        $classes[] = 'page-id-' . $page_id;
        if (get_pages(array('parent' => $page_id, 'number' => 1))) {
            $classes[] = 'page-parent';
        }
        if ($post->post_parent) {
            $classes[] = 'page-child';
            $classes[] = 'parent-pageid-' . $post->post_parent;
        }
        if (is_page_template()) {
            $classes[] = 'page-template';
            $template_slug = get_page_template_slug($page_id);
            $template_parts = explode('/', $template_slug);
            foreach ($template_parts as $part) {
                $classes[] = 'page-template-' . sanitize_html_class(str_replace(array('.', '/'), '-', basename($part, '.php')));
            }
            $classes[] = 'page-template-' . sanitize_html_class(str_replace('.', '-', $template_slug));
        } else {
            $classes[] = 'page-template-default';
        }
    }
    if (is_user_logged_in()) {
        $classes[] = 'logged-in';
    }
    if (is_admin_bar_showing()) {
        $classes[] = 'admin-bar';
        $classes[] = 'no-customize-support';
    }
    if (get_background_color() !== get_theme_support('custom-background', 'default-color') || get_background_image()) {
        $classes[] = 'custom-background';
    }
    $page = $wp_query->get('page');
    if (!$page || $page < 2) {
        $page = $wp_query->get('paged');
    }
    if ($page && $page > 1 && !is_404()) {
        $classes[] = 'paged-' . $page;
        if (is_single()) {
            $classes[] = 'single-paged-' . $page;
        } elseif (is_page()) {
            $classes[] = 'page-paged-' . $page;
        } elseif (is_category()) {
            $classes[] = 'category-paged-' . $page;
        } elseif (is_tag()) {
            $classes[] = 'tag-paged-' . $page;
        } elseif (is_date()) {
            $classes[] = 'date-paged-' . $page;
        } elseif (is_author()) {
            $classes[] = 'author-paged-' . $page;
        } elseif (is_search()) {
            $classes[] = 'search-paged-' . $page;
        } elseif (is_post_type_archive()) {
            $classes[] = 'post-type-paged-' . $page;
        }
    }
    if (!empty($class)) {
        if (!is_array($class)) {
            $class = preg_split('#\s+#', $class);
        }
        $classes = array_merge($classes, $class);
    } else {
        // Ensure that we always coerce class to being an array.
        $class = array();
    }
    $classes = array_map('esc_attr', $classes);
    /**
     * Filter the list of CSS body classes for the current post or page.
     *
     * @since 2.8.0
     *
     * @param array $classes An array of body classes.
     * @param array $class   An array of additional classes added to the body.
     */
    $classes = apply_filters('body_class', $classes, $class);
    return array_unique($classes);
}

WordPress Version: 4.3

/**
 * Retrieve the classes for the body element as an array.
 *
 * @since 2.8.0
 *
 * @global WP_Query $wp_query
 * @global wpdb     $wpdb
 *
 * @param string|array $class One or more classes to add to the class list.
 * @return array Array of classes.
 */
function get_body_class($class = '')
{
    global $wp_query, $wpdb;
    $classes = array();
    if (is_rtl()) {
        $classes[] = 'rtl';
    }
    if (is_front_page()) {
        $classes[] = 'home';
    }
    if (is_home()) {
        $classes[] = 'blog';
    }
    if (is_archive()) {
        $classes[] = 'archive';
    }
    if (is_date()) {
        $classes[] = 'date';
    }
    if (is_search()) {
        $classes[] = 'search';
        $classes[] = $wp_query->posts ? 'search-results' : 'search-no-results';
    }
    if (is_paged()) {
        $classes[] = 'paged';
    }
    if (is_attachment()) {
        $classes[] = 'attachment';
    }
    if (is_404()) {
        $classes[] = 'error404';
    }
    if (is_single()) {
        $post_id = $wp_query->get_queried_object_id();
        $post = $wp_query->get_queried_object();
        $classes[] = 'single';
        if (isset($post->post_type)) {
            $classes[] = 'single-' . sanitize_html_class($post->post_type, $post_id);
            $classes[] = 'postid-' . $post_id;
            // Post Format
            if (post_type_supports($post->post_type, 'post-formats')) {
                $post_format = get_post_format($post->ID);
                if ($post_format && !is_wp_error($post_format)) {
                    $classes[] = 'single-format-' . sanitize_html_class($post_format);
                } else {
                    $classes[] = 'single-format-standard';
                }
            }
        }
        if (is_attachment()) {
            $mime_type = get_post_mime_type($post_id);
            $mime_prefix = array('application/', 'image/', 'text/', 'audio/', 'video/', 'music/');
            $classes[] = 'attachmentid-' . $post_id;
            $classes[] = 'attachment-' . str_replace($mime_prefix, '', $mime_type);
        }
    } elseif (is_archive()) {
        if (is_post_type_archive()) {
            $classes[] = 'post-type-archive';
            $post_type = get_query_var('post_type');
            if (is_array($post_type)) {
                $post_type = reset($post_type);
            }
            $classes[] = 'post-type-archive-' . sanitize_html_class($post_type);
        } elseif (is_author()) {
            $author = $wp_query->get_queried_object();
            $classes[] = 'author';
            if (isset($author->user_nicename)) {
                $classes[] = 'author-' . sanitize_html_class($author->user_nicename, $author->ID);
                $classes[] = 'author-' . $author->ID;
            }
        } elseif (is_category()) {
            $cat = $wp_query->get_queried_object();
            $classes[] = 'category';
            if (isset($cat->term_id)) {
                $cat_class = sanitize_html_class($cat->slug, $cat->term_id);
                if (is_numeric($cat_class) || !trim($cat_class, '-')) {
                    $cat_class = $cat->term_id;
                }
                $classes[] = 'category-' . $cat_class;
                $classes[] = 'category-' . $cat->term_id;
            }
        } elseif (is_tag()) {
            $tag = $wp_query->get_queried_object();
            $classes[] = 'tag';
            if (isset($tag->term_id)) {
                $tag_class = sanitize_html_class($tag->slug, $tag->term_id);
                if (is_numeric($tag_class) || !trim($tag_class, '-')) {
                    $tag_class = $tag->term_id;
                }
                $classes[] = 'tag-' . $tag_class;
                $classes[] = 'tag-' . $tag->term_id;
            }
        } elseif (is_tax()) {
            $term = $wp_query->get_queried_object();
            if (isset($term->term_id)) {
                $term_class = sanitize_html_class($term->slug, $term->term_id);
                if (is_numeric($term_class) || !trim($term_class, '-')) {
                    $term_class = $term->term_id;
                }
                $classes[] = 'tax-' . sanitize_html_class($term->taxonomy);
                $classes[] = 'term-' . $term_class;
                $classes[] = 'term-' . $term->term_id;
            }
        }
    } elseif (is_page()) {
        $classes[] = 'page';
        $page_id = $wp_query->get_queried_object_id();
        $post = get_post($page_id);
        $classes[] = 'page-id-' . $page_id;
        if (get_pages(array('parent' => $page_id, 'number' => 1))) {
            $classes[] = 'page-parent';
        }
        if ($post->post_parent) {
            $classes[] = 'page-child';
            $classes[] = 'parent-pageid-' . $post->post_parent;
        }
        if (is_page_template()) {
            $classes[] = 'page-template';
            $template_slug = get_page_template_slug($page_id);
            $template_parts = explode('/', $template_slug);
            foreach ($template_parts as $part) {
                $classes[] = 'page-template-' . sanitize_html_class(str_replace(array('.', '/'), '-', basename($part, '.php')));
            }
            $classes[] = 'page-template-' . sanitize_html_class(str_replace('.', '-', $template_slug));
        } else {
            $classes[] = 'page-template-default';
        }
    }
    if (is_user_logged_in()) {
        $classes[] = 'logged-in';
    }
    if (is_admin_bar_showing()) {
        $classes[] = 'admin-bar';
        $classes[] = 'no-customize-support';
    }
    if (get_background_color() !== get_theme_support('custom-background', 'default-color') || get_background_image()) {
        $classes[] = 'custom-background';
    }
    $page = $wp_query->get('page');
    if (!$page || $page < 2) {
        $page = $wp_query->get('paged');
    }
    if ($page && $page > 1 && !is_404()) {
        $classes[] = 'paged-' . $page;
        if (is_single()) {
            $classes[] = 'single-paged-' . $page;
        } elseif (is_page()) {
            $classes[] = 'page-paged-' . $page;
        } elseif (is_category()) {
            $classes[] = 'category-paged-' . $page;
        } elseif (is_tag()) {
            $classes[] = 'tag-paged-' . $page;
        } elseif (is_date()) {
            $classes[] = 'date-paged-' . $page;
        } elseif (is_author()) {
            $classes[] = 'author-paged-' . $page;
        } elseif (is_search()) {
            $classes[] = 'search-paged-' . $page;
        } elseif (is_post_type_archive()) {
            $classes[] = 'post-type-paged-' . $page;
        }
    }
    if (!empty($class)) {
        if (!is_array($class)) {
            $class = preg_split('#\s+#', $class);
        }
        $classes = array_merge($classes, $class);
    } else {
        // Ensure that we always coerce class to being an array.
        $class = array();
    }
    $classes = array_map('esc_attr', $classes);
    /**
     * Filter the list of CSS body classes for the current post or page.
     *
     * @since 2.8.0
     *
     * @param array  $classes An array of body classes.
     * @param string $class   A comma-separated list of additional classes added to the body.
     */
    $classes = apply_filters('body_class', $classes, $class);
    return array_unique($classes);
}

WordPress Version: 4.2

/**
 * Retrieve the classes for the body element as an array.
 *
 * @since 2.8.0
 *
 * @param string|array $class One or more classes to add to the class list.
 * @return array Array of classes.
 */
function get_body_class($class = '')
{
    global $wp_query, $wpdb;
    $classes = array();
    if (is_rtl()) {
        $classes[] = 'rtl';
    }
    if (is_front_page()) {
        $classes[] = 'home';
    }
    if (is_home()) {
        $classes[] = 'blog';
    }
    if (is_archive()) {
        $classes[] = 'archive';
    }
    if (is_date()) {
        $classes[] = 'date';
    }
    if (is_search()) {
        $classes[] = 'search';
        $classes[] = $wp_query->posts ? 'search-results' : 'search-no-results';
    }
    if (is_paged()) {
        $classes[] = 'paged';
    }
    if (is_attachment()) {
        $classes[] = 'attachment';
    }
    if (is_404()) {
        $classes[] = 'error404';
    }
    if (is_single()) {
        $post_id = $wp_query->get_queried_object_id();
        $post = $wp_query->get_queried_object();
        $classes[] = 'single';
        if (isset($post->post_type)) {
            $classes[] = 'single-' . sanitize_html_class($post->post_type, $post_id);
            $classes[] = 'postid-' . $post_id;
            // Post Format
            if (post_type_supports($post->post_type, 'post-formats')) {
                $post_format = get_post_format($post->ID);
                if ($post_format && !is_wp_error($post_format)) {
                    $classes[] = 'single-format-' . sanitize_html_class($post_format);
                } else {
                    $classes[] = 'single-format-standard';
                }
            }
        }
        if (is_attachment()) {
            $mime_type = get_post_mime_type($post_id);
            $mime_prefix = array('application/', 'image/', 'text/', 'audio/', 'video/', 'music/');
            $classes[] = 'attachmentid-' . $post_id;
            $classes[] = 'attachment-' . str_replace($mime_prefix, '', $mime_type);
        }
    } elseif (is_archive()) {
        if (is_post_type_archive()) {
            $classes[] = 'post-type-archive';
            $post_type = get_query_var('post_type');
            if (is_array($post_type)) {
                $post_type = reset($post_type);
            }
            $classes[] = 'post-type-archive-' . sanitize_html_class($post_type);
        } elseif (is_author()) {
            $author = $wp_query->get_queried_object();
            $classes[] = 'author';
            if (isset($author->user_nicename)) {
                $classes[] = 'author-' . sanitize_html_class($author->user_nicename, $author->ID);
                $classes[] = 'author-' . $author->ID;
            }
        } elseif (is_category()) {
            $cat = $wp_query->get_queried_object();
            $classes[] = 'category';
            if (isset($cat->term_id)) {
                $cat_class = sanitize_html_class($cat->slug, $cat->term_id);
                if (is_numeric($cat_class) || !trim($cat_class, '-')) {
                    $cat_class = $cat->term_id;
                }
                $classes[] = 'category-' . $cat_class;
                $classes[] = 'category-' . $cat->term_id;
            }
        } elseif (is_tag()) {
            $tag = $wp_query->get_queried_object();
            $classes[] = 'tag';
            if (isset($tag->term_id)) {
                $tag_class = sanitize_html_class($tag->slug, $tag->term_id);
                if (is_numeric($tag_class) || !trim($tag_class, '-')) {
                    $tag_class = $tag->term_id;
                }
                $classes[] = 'tag-' . $tag_class;
                $classes[] = 'tag-' . $tag->term_id;
            }
        } elseif (is_tax()) {
            $term = $wp_query->get_queried_object();
            if (isset($term->term_id)) {
                $term_class = sanitize_html_class($term->slug, $term->term_id);
                if (is_numeric($term_class) || !trim($term_class, '-')) {
                    $term_class = $term->term_id;
                }
                $classes[] = 'tax-' . sanitize_html_class($term->taxonomy);
                $classes[] = 'term-' . $term_class;
                $classes[] = 'term-' . $term->term_id;
            }
        }
    } elseif (is_page()) {
        $classes[] = 'page';
        $page_id = $wp_query->get_queried_object_id();
        $post = get_post($page_id);
        $classes[] = 'page-id-' . $page_id;
        if (get_pages(array('parent' => $page_id, 'number' => 1))) {
            $classes[] = 'page-parent';
        }
        if ($post->post_parent) {
            $classes[] = 'page-child';
            $classes[] = 'parent-pageid-' . $post->post_parent;
        }
        if (is_page_template()) {
            $classes[] = 'page-template';
            $template_slug = get_page_template_slug($page_id);
            $template_parts = explode('/', $template_slug);
            foreach ($template_parts as $part) {
                $classes[] = 'page-template-' . sanitize_html_class(str_replace(array('.', '/'), '-', basename($part, '.php')));
            }
            $classes[] = 'page-template-' . sanitize_html_class(str_replace('.', '-', $template_slug));
        } else {
            $classes[] = 'page-template-default';
        }
    }
    if (is_user_logged_in()) {
        $classes[] = 'logged-in';
    }
    if (is_admin_bar_showing()) {
        $classes[] = 'admin-bar';
        $classes[] = 'no-customize-support';
    }
    if (get_background_color() !== get_theme_support('custom-background', 'default-color') || get_background_image()) {
        $classes[] = 'custom-background';
    }
    $page = $wp_query->get('page');
    if (!$page || $page < 2) {
        $page = $wp_query->get('paged');
    }
    if ($page && $page > 1 && !is_404()) {
        $classes[] = 'paged-' . $page;
        if (is_single()) {
            $classes[] = 'single-paged-' . $page;
        } elseif (is_page()) {
            $classes[] = 'page-paged-' . $page;
        } elseif (is_category()) {
            $classes[] = 'category-paged-' . $page;
        } elseif (is_tag()) {
            $classes[] = 'tag-paged-' . $page;
        } elseif (is_date()) {
            $classes[] = 'date-paged-' . $page;
        } elseif (is_author()) {
            $classes[] = 'author-paged-' . $page;
        } elseif (is_search()) {
            $classes[] = 'search-paged-' . $page;
        } elseif (is_post_type_archive()) {
            $classes[] = 'post-type-paged-' . $page;
        }
    }
    if (!empty($class)) {
        if (!is_array($class)) {
            $class = preg_split('#\s+#', $class);
        }
        $classes = array_merge($classes, $class);
    } else {
        // Ensure that we always coerce class to being an array.
        $class = array();
    }
    $classes = array_map('esc_attr', $classes);
    /**
     * Filter the list of CSS body classes for the current post or page.
     *
     * @since 2.8.0
     *
     * @param array  $classes An array of body classes.
     * @param string $class   A comma-separated list of additional classes added to the body.
     */
    $classes = apply_filters('body_class', $classes, $class);
    return array_unique($classes);
}

WordPress Version: 4.1

/**
 * Retrieve the classes for the body element as an array.
 *
 * @since 2.8.0
 *
 * @param string|array $class One or more classes to add to the class list.
 * @return array Array of classes.
 */
function get_body_class($class = '')
{
    global $wp_query, $wpdb;
    $classes = array();
    if (is_rtl()) {
        $classes[] = 'rtl';
    }
    if (is_front_page()) {
        $classes[] = 'home';
    }
    if (is_home()) {
        $classes[] = 'blog';
    }
    if (is_archive()) {
        $classes[] = 'archive';
    }
    if (is_date()) {
        $classes[] = 'date';
    }
    if (is_search()) {
        $classes[] = 'search';
        $classes[] = $wp_query->posts ? 'search-results' : 'search-no-results';
    }
    if (is_paged()) {
        $classes[] = 'paged';
    }
    if (is_attachment()) {
        $classes[] = 'attachment';
    }
    if (is_404()) {
        $classes[] = 'error404';
    }
    if (is_single()) {
        $post_id = $wp_query->get_queried_object_id();
        $post = $wp_query->get_queried_object();
        $classes[] = 'single';
        if (isset($post->post_type)) {
            $classes[] = 'single-' . sanitize_html_class($post->post_type, $post_id);
            $classes[] = 'postid-' . $post_id;
            // Post Format
            if (post_type_supports($post->post_type, 'post-formats')) {
                $post_format = get_post_format($post->ID);
                if ($post_format && !is_wp_error($post_format)) {
                    $classes[] = 'single-format-' . sanitize_html_class($post_format);
                } else {
                    $classes[] = 'single-format-standard';
                }
            }
        }
        if (is_attachment()) {
            $mime_type = get_post_mime_type($post_id);
            $mime_prefix = array('application/', 'image/', 'text/', 'audio/', 'video/', 'music/');
            $classes[] = 'attachmentid-' . $post_id;
            $classes[] = 'attachment-' . str_replace($mime_prefix, '', $mime_type);
        }
    } elseif (is_archive()) {
        if (is_post_type_archive()) {
            $classes[] = 'post-type-archive';
            $post_type = get_query_var('post_type');
            if (is_array($post_type)) {
                $post_type = reset($post_type);
            }
            $classes[] = 'post-type-archive-' . sanitize_html_class($post_type);
        } else if (is_author()) {
            $author = $wp_query->get_queried_object();
            $classes[] = 'author';
            if (isset($author->user_nicename)) {
                $classes[] = 'author-' . sanitize_html_class($author->user_nicename, $author->ID);
                $classes[] = 'author-' . $author->ID;
            }
        } elseif (is_category()) {
            $cat = $wp_query->get_queried_object();
            $classes[] = 'category';
            if (isset($cat->term_id)) {
                $classes[] = 'category-' . sanitize_html_class($cat->slug, $cat->term_id);
                $classes[] = 'category-' . $cat->term_id;
            }
        } elseif (is_tag()) {
            $tags = $wp_query->get_queried_object();
            $classes[] = 'tag';
            if (isset($tags->term_id)) {
                $classes[] = 'tag-' . sanitize_html_class($tags->slug, $tags->term_id);
                $classes[] = 'tag-' . $tags->term_id;
            }
        } elseif (is_tax()) {
            $term = $wp_query->get_queried_object();
            if (isset($term->term_id)) {
                $classes[] = 'tax-' . sanitize_html_class($term->taxonomy);
                $classes[] = 'term-' . sanitize_html_class($term->slug, $term->term_id);
                $classes[] = 'term-' . $term->term_id;
            }
        }
    } elseif (is_page()) {
        $classes[] = 'page';
        $page_id = $wp_query->get_queried_object_id();
        $post = get_post($page_id);
        $classes[] = 'page-id-' . $page_id;
        if (get_pages(array('parent' => $page_id, 'number' => 1))) {
            $classes[] = 'page-parent';
        }
        if ($post->post_parent) {
            $classes[] = 'page-child';
            $classes[] = 'parent-pageid-' . $post->post_parent;
        }
        if (is_page_template()) {
            $classes[] = 'page-template';
            $template_slug = get_page_template_slug($page_id);
            $template_parts = explode('/', $template_slug);
            foreach ($template_parts as $part) {
                $classes[] = 'page-template-' . sanitize_html_class(str_replace(array('.', '/'), '-', basename($part, '.php')));
            }
            $classes[] = 'page-template-' . sanitize_html_class(str_replace('.', '-', $template_slug));
        } else {
            $classes[] = 'page-template-default';
        }
    }
    if (is_user_logged_in()) {
        $classes[] = 'logged-in';
    }
    if (is_admin_bar_showing()) {
        $classes[] = 'admin-bar';
        $classes[] = 'no-customize-support';
    }
    if (get_theme_mod('background_color') || get_background_image()) {
        $classes[] = 'custom-background';
    }
    $page = $wp_query->get('page');
    if (!$page || $page < 2) {
        $page = $wp_query->get('paged');
    }
    if ($page && $page > 1 && !is_404()) {
        $classes[] = 'paged-' . $page;
        if (is_single()) {
            $classes[] = 'single-paged-' . $page;
        } elseif (is_page()) {
            $classes[] = 'page-paged-' . $page;
        } elseif (is_category()) {
            $classes[] = 'category-paged-' . $page;
        } elseif (is_tag()) {
            $classes[] = 'tag-paged-' . $page;
        } elseif (is_date()) {
            $classes[] = 'date-paged-' . $page;
        } elseif (is_author()) {
            $classes[] = 'author-paged-' . $page;
        } elseif (is_search()) {
            $classes[] = 'search-paged-' . $page;
        } elseif (is_post_type_archive()) {
            $classes[] = 'post-type-paged-' . $page;
        }
    }
    if (!empty($class)) {
        if (!is_array($class)) {
            $class = preg_split('#\s+#', $class);
        }
        $classes = array_merge($classes, $class);
    } else {
        // Ensure that we always coerce class to being an array.
        $class = array();
    }
    $classes = array_map('esc_attr', $classes);
    /**
     * Filter the list of CSS body classes for the current post or page.
     *
     * @since 2.8.0
     *
     * @param array  $classes An array of body classes.
     * @param string $class   A comma-separated list of additional classes added to the body.
     */
    $classes = apply_filters('body_class', $classes, $class);
    return array_unique($classes);
}

WordPress Version: 4.0

/**
 * Retrieve the classes for the body element as an array.
 *
 * @since 2.8.0
 *
 * @param string|array $class One or more classes to add to the class list.
 * @return array Array of classes.
 */
function get_body_class($class = '')
{
    global $wp_query, $wpdb;
    $classes = array();
    if (is_rtl()) {
        $classes[] = 'rtl';
    }
    if (is_front_page()) {
        $classes[] = 'home';
    }
    if (is_home()) {
        $classes[] = 'blog';
    }
    if (is_archive()) {
        $classes[] = 'archive';
    }
    if (is_date()) {
        $classes[] = 'date';
    }
    if (is_search()) {
        $classes[] = 'search';
        $classes[] = $wp_query->posts ? 'search-results' : 'search-no-results';
    }
    if (is_paged()) {
        $classes[] = 'paged';
    }
    if (is_attachment()) {
        $classes[] = 'attachment';
    }
    if (is_404()) {
        $classes[] = 'error404';
    }
    if (is_single()) {
        $post_id = $wp_query->get_queried_object_id();
        $post = $wp_query->get_queried_object();
        $classes[] = 'single';
        if (isset($post->post_type)) {
            $classes[] = 'single-' . sanitize_html_class($post->post_type, $post_id);
            $classes[] = 'postid-' . $post_id;
            // Post Format
            if (post_type_supports($post->post_type, 'post-formats')) {
                $post_format = get_post_format($post->ID);
                if ($post_format && !is_wp_error($post_format)) {
                    $classes[] = 'single-format-' . sanitize_html_class($post_format);
                } else {
                    $classes[] = 'single-format-standard';
                }
            }
        }
        if (is_attachment()) {
            $mime_type = get_post_mime_type($post_id);
            $mime_prefix = array('application/', 'image/', 'text/', 'audio/', 'video/', 'music/');
            $classes[] = 'attachmentid-' . $post_id;
            $classes[] = 'attachment-' . str_replace($mime_prefix, '', $mime_type);
        }
    } elseif (is_archive()) {
        if (is_post_type_archive()) {
            $classes[] = 'post-type-archive';
            $post_type = get_query_var('post_type');
            if (is_array($post_type)) {
                $post_type = reset($post_type);
            }
            $classes[] = 'post-type-archive-' . sanitize_html_class($post_type);
        } else if (is_author()) {
            $author = $wp_query->get_queried_object();
            $classes[] = 'author';
            if (isset($author->user_nicename)) {
                $classes[] = 'author-' . sanitize_html_class($author->user_nicename, $author->ID);
                $classes[] = 'author-' . $author->ID;
            }
        } elseif (is_category()) {
            $cat = $wp_query->get_queried_object();
            $classes[] = 'category';
            if (isset($cat->term_id)) {
                $classes[] = 'category-' . sanitize_html_class($cat->slug, $cat->term_id);
                $classes[] = 'category-' . $cat->term_id;
            }
        } elseif (is_tag()) {
            $tags = $wp_query->get_queried_object();
            $classes[] = 'tag';
            if (isset($tags->term_id)) {
                $classes[] = 'tag-' . sanitize_html_class($tags->slug, $tags->term_id);
                $classes[] = 'tag-' . $tags->term_id;
            }
        } elseif (is_tax()) {
            $term = $wp_query->get_queried_object();
            if (isset($term->term_id)) {
                $classes[] = 'tax-' . sanitize_html_class($term->taxonomy);
                $classes[] = 'term-' . sanitize_html_class($term->slug, $term->term_id);
                $classes[] = 'term-' . $term->term_id;
            }
        }
    } elseif (is_page()) {
        $classes[] = 'page';
        $page_id = $wp_query->get_queried_object_id();
        $post = get_post($page_id);
        $classes[] = 'page-id-' . $page_id;
        if (get_pages(array('parent' => $page_id, 'number' => 1))) {
            $classes[] = 'page-parent';
        }
        if ($post->post_parent) {
            $classes[] = 'page-child';
            $classes[] = 'parent-pageid-' . $post->post_parent;
        }
        if (is_page_template()) {
            $classes[] = 'page-template';
            $classes[] = 'page-template-' . sanitize_html_class(str_replace('.', '-', get_page_template_slug($page_id)));
        } else {
            $classes[] = 'page-template-default';
        }
    }
    if (is_user_logged_in()) {
        $classes[] = 'logged-in';
    }
    if (is_admin_bar_showing()) {
        $classes[] = 'admin-bar';
        $classes[] = 'no-customize-support';
    }
    if (get_theme_mod('background_color') || get_background_image()) {
        $classes[] = 'custom-background';
    }
    $page = $wp_query->get('page');
    if (!$page || $page < 2) {
        $page = $wp_query->get('paged');
    }
    if ($page && $page > 1 && !is_404()) {
        $classes[] = 'paged-' . $page;
        if (is_single()) {
            $classes[] = 'single-paged-' . $page;
        } elseif (is_page()) {
            $classes[] = 'page-paged-' . $page;
        } elseif (is_category()) {
            $classes[] = 'category-paged-' . $page;
        } elseif (is_tag()) {
            $classes[] = 'tag-paged-' . $page;
        } elseif (is_date()) {
            $classes[] = 'date-paged-' . $page;
        } elseif (is_author()) {
            $classes[] = 'author-paged-' . $page;
        } elseif (is_search()) {
            $classes[] = 'search-paged-' . $page;
        } elseif (is_post_type_archive()) {
            $classes[] = 'post-type-paged-' . $page;
        }
    }
    if (!empty($class)) {
        if (!is_array($class)) {
            $class = preg_split('#\s+#', $class);
        }
        $classes = array_merge($classes, $class);
    } else {
        // Ensure that we always coerce class to being an array.
        $class = array();
    }
    $classes = array_map('esc_attr', $classes);
    /**
     * Filter the list of CSS body classes for the current post or page.
     *
     * @since 2.8.0
     *
     * @param array  $classes An array of body classes.
     * @param string $class   A comma-separated list of additional classes added to the body.
     */
    $classes = apply_filters('body_class', $classes, $class);
    return array_unique($classes);
}

WordPress Version: 3.9

/**
 * Retrieve the classes for the body element as an array.
 *
 * @since 2.8.0
 *
 * @param string|array $class One or more classes to add to the class list.
 * @return array Array of classes.
 */
function get_body_class($class = '')
{
    global $wp_query, $wpdb;
    $classes = array();
    if (is_rtl()) {
        $classes[] = 'rtl';
    }
    if (is_front_page()) {
        $classes[] = 'home';
    }
    if (is_home()) {
        $classes[] = 'blog';
    }
    if (is_archive()) {
        $classes[] = 'archive';
    }
    if (is_date()) {
        $classes[] = 'date';
    }
    if (is_search()) {
        $classes[] = 'search';
        $classes[] = $wp_query->posts ? 'search-results' : 'search-no-results';
    }
    if (is_paged()) {
        $classes[] = 'paged';
    }
    if (is_attachment()) {
        $classes[] = 'attachment';
    }
    if (is_404()) {
        $classes[] = 'error404';
    }
    if (is_single()) {
        $post_id = $wp_query->get_queried_object_id();
        $post = $wp_query->get_queried_object();
        $classes[] = 'single';
        if (isset($post->post_type)) {
            $classes[] = 'single-' . sanitize_html_class($post->post_type, $post_id);
            $classes[] = 'postid-' . $post_id;
            // Post Format
            if (post_type_supports($post->post_type, 'post-formats')) {
                $post_format = get_post_format($post->ID);
                if ($post_format && !is_wp_error($post_format)) {
                    $classes[] = 'single-format-' . sanitize_html_class($post_format);
                } else {
                    $classes[] = 'single-format-standard';
                }
            }
        }
        if (is_attachment()) {
            $mime_type = get_post_mime_type($post_id);
            $mime_prefix = array('application/', 'image/', 'text/', 'audio/', 'video/', 'music/');
            $classes[] = 'attachmentid-' . $post_id;
            $classes[] = 'attachment-' . str_replace($mime_prefix, '', $mime_type);
        }
    } elseif (is_archive()) {
        if (is_post_type_archive()) {
            $classes[] = 'post-type-archive';
            $post_type = get_query_var('post_type');
            if (is_array($post_type)) {
                $post_type = reset($post_type);
            }
            $classes[] = 'post-type-archive-' . sanitize_html_class($post_type);
        } else if (is_author()) {
            $author = $wp_query->get_queried_object();
            $classes[] = 'author';
            if (isset($author->user_nicename)) {
                $classes[] = 'author-' . sanitize_html_class($author->user_nicename, $author->ID);
                $classes[] = 'author-' . $author->ID;
            }
        } elseif (is_category()) {
            $cat = $wp_query->get_queried_object();
            $classes[] = 'category';
            if (isset($cat->term_id)) {
                $classes[] = 'category-' . sanitize_html_class($cat->slug, $cat->term_id);
                $classes[] = 'category-' . $cat->term_id;
            }
        } elseif (is_tag()) {
            $tags = $wp_query->get_queried_object();
            $classes[] = 'tag';
            if (isset($tags->term_id)) {
                $classes[] = 'tag-' . sanitize_html_class($tags->slug, $tags->term_id);
                $classes[] = 'tag-' . $tags->term_id;
            }
        } elseif (is_tax()) {
            $term = $wp_query->get_queried_object();
            if (isset($term->term_id)) {
                $classes[] = 'tax-' . sanitize_html_class($term->taxonomy);
                $classes[] = 'term-' . sanitize_html_class($term->slug, $term->term_id);
                $classes[] = 'term-' . $term->term_id;
            }
        }
    } elseif (is_page()) {
        $classes[] = 'page';
        $page_id = $wp_query->get_queried_object_id();
        $post = get_post($page_id);
        $classes[] = 'page-id-' . $page_id;
        if ($wpdb->get_var($wpdb->prepare("SELECT ID FROM {$wpdb->posts} WHERE post_parent = %d AND post_type = 'page' AND post_status = 'publish' LIMIT 1", $page_id))) {
            $classes[] = 'page-parent';
        }
        if ($post->post_parent) {
            $classes[] = 'page-child';
            $classes[] = 'parent-pageid-' . $post->post_parent;
        }
        if (is_page_template()) {
            $classes[] = 'page-template';
            $classes[] = 'page-template-' . sanitize_html_class(str_replace('.', '-', get_page_template_slug($page_id)));
        } else {
            $classes[] = 'page-template-default';
        }
    }
    if (is_user_logged_in()) {
        $classes[] = 'logged-in';
    }
    if (is_admin_bar_showing()) {
        $classes[] = 'admin-bar';
        $classes[] = 'no-customize-support';
    }
    if (get_theme_mod('background_color') || get_background_image()) {
        $classes[] = 'custom-background';
    }
    $page = $wp_query->get('page');
    if (!$page || $page < 2) {
        $page = $wp_query->get('paged');
    }
    if ($page && $page > 1) {
        $classes[] = 'paged-' . $page;
        if (is_single()) {
            $classes[] = 'single-paged-' . $page;
        } elseif (is_page()) {
            $classes[] = 'page-paged-' . $page;
        } elseif (is_category()) {
            $classes[] = 'category-paged-' . $page;
        } elseif (is_tag()) {
            $classes[] = 'tag-paged-' . $page;
        } elseif (is_date()) {
            $classes[] = 'date-paged-' . $page;
        } elseif (is_author()) {
            $classes[] = 'author-paged-' . $page;
        } elseif (is_search()) {
            $classes[] = 'search-paged-' . $page;
        } elseif (is_post_type_archive()) {
            $classes[] = 'post-type-paged-' . $page;
        }
    }
    if (!empty($class)) {
        if (!is_array($class)) {
            $class = preg_split('#\s+#', $class);
        }
        $classes = array_merge($classes, $class);
    } else {
        // Ensure that we always coerce class to being an array.
        $class = array();
    }
    $classes = array_map('esc_attr', $classes);
    /**
     * Filter the list of CSS body classes for the current post or page.
     *
     * @since 2.8.0
     *
     * @param array  $classes An array of body classes.
     * @param string $class   A comma-separated list of additional classes added to the body.
     */
    return apply_filters('body_class', $classes, $class);
}

WordPress Version: 3.7

/**
 * Retrieve the classes for the body element as an array.
 *
 * @since 2.8.0
 *
 * @param string|array $class One or more classes to add to the class list.
 * @return array Array of classes.
 */
function get_body_class($class = '')
{
    global $wp_query, $wpdb;
    $classes = array();
    if (is_rtl()) {
        $classes[] = 'rtl';
    }
    if (is_front_page()) {
        $classes[] = 'home';
    }
    if (is_home()) {
        $classes[] = 'blog';
    }
    if (is_archive()) {
        $classes[] = 'archive';
    }
    if (is_date()) {
        $classes[] = 'date';
    }
    if (is_search()) {
        $classes[] = 'search';
        $classes[] = $wp_query->posts ? 'search-results' : 'search-no-results';
    }
    if (is_paged()) {
        $classes[] = 'paged';
    }
    if (is_attachment()) {
        $classes[] = 'attachment';
    }
    if (is_404()) {
        $classes[] = 'error404';
    }
    if (is_single()) {
        $post_id = $wp_query->get_queried_object_id();
        $post = $wp_query->get_queried_object();
        $classes[] = 'single';
        if (isset($post->post_type)) {
            $classes[] = 'single-' . sanitize_html_class($post->post_type, $post_id);
            $classes[] = 'postid-' . $post_id;
            // Post Format
            if (post_type_supports($post->post_type, 'post-formats')) {
                $post_format = get_post_format($post->ID);
                if ($post_format && !is_wp_error($post_format)) {
                    $classes[] = 'single-format-' . sanitize_html_class($post_format);
                } else {
                    $classes[] = 'single-format-standard';
                }
            }
        }
        if (is_attachment()) {
            $mime_type = get_post_mime_type($post_id);
            $mime_prefix = array('application/', 'image/', 'text/', 'audio/', 'video/', 'music/');
            $classes[] = 'attachmentid-' . $post_id;
            $classes[] = 'attachment-' . str_replace($mime_prefix, '', $mime_type);
        }
    } elseif (is_archive()) {
        if (is_post_type_archive()) {
            $classes[] = 'post-type-archive';
            $post_type = get_query_var('post_type');
            if (is_array($post_type)) {
                $post_type = reset($post_type);
            }
            $classes[] = 'post-type-archive-' . sanitize_html_class($post_type);
        } else if (is_author()) {
            $author = $wp_query->get_queried_object();
            $classes[] = 'author';
            if (isset($author->user_nicename)) {
                $classes[] = 'author-' . sanitize_html_class($author->user_nicename, $author->ID);
                $classes[] = 'author-' . $author->ID;
            }
        } elseif (is_category()) {
            $cat = $wp_query->get_queried_object();
            $classes[] = 'category';
            if (isset($cat->term_id)) {
                $classes[] = 'category-' . sanitize_html_class($cat->slug, $cat->term_id);
                $classes[] = 'category-' . $cat->term_id;
            }
        } elseif (is_tag()) {
            $tags = $wp_query->get_queried_object();
            $classes[] = 'tag';
            if (isset($tags->term_id)) {
                $classes[] = 'tag-' . sanitize_html_class($tags->slug, $tags->term_id);
                $classes[] = 'tag-' . $tags->term_id;
            }
        } elseif (is_tax()) {
            $term = $wp_query->get_queried_object();
            if (isset($term->term_id)) {
                $classes[] = 'tax-' . sanitize_html_class($term->taxonomy);
                $classes[] = 'term-' . sanitize_html_class($term->slug, $term->term_id);
                $classes[] = 'term-' . $term->term_id;
            }
        }
    } elseif (is_page()) {
        $classes[] = 'page';
        $page_id = $wp_query->get_queried_object_id();
        $post = get_post($page_id);
        $classes[] = 'page-id-' . $page_id;
        if ($wpdb->get_var($wpdb->prepare("SELECT ID FROM {$wpdb->posts} WHERE post_parent = %d AND post_type = 'page' AND post_status = 'publish' LIMIT 1", $page_id))) {
            $classes[] = 'page-parent';
        }
        if ($post->post_parent) {
            $classes[] = 'page-child';
            $classes[] = 'parent-pageid-' . $post->post_parent;
        }
        if (is_page_template()) {
            $classes[] = 'page-template';
            $classes[] = 'page-template-' . sanitize_html_class(str_replace('.', '-', get_page_template_slug($page_id)));
        } else {
            $classes[] = 'page-template-default';
        }
    }
    if (is_user_logged_in()) {
        $classes[] = 'logged-in';
    }
    if (is_admin_bar_showing()) {
        $classes[] = 'admin-bar';
        $classes[] = 'no-customize-support';
    }
    if (get_theme_mod('background_color') || get_background_image()) {
        $classes[] = 'custom-background';
    }
    $page = $wp_query->get('page');
    if (!$page || $page < 2) {
        $page = $wp_query->get('paged');
    }
    if ($page && $page > 1) {
        $classes[] = 'paged-' . $page;
        if (is_single()) {
            $classes[] = 'single-paged-' . $page;
        } elseif (is_page()) {
            $classes[] = 'page-paged-' . $page;
        } elseif (is_category()) {
            $classes[] = 'category-paged-' . $page;
        } elseif (is_tag()) {
            $classes[] = 'tag-paged-' . $page;
        } elseif (is_date()) {
            $classes[] = 'date-paged-' . $page;
        } elseif (is_author()) {
            $classes[] = 'author-paged-' . $page;
        } elseif (is_search()) {
            $classes[] = 'search-paged-' . $page;
        } elseif (is_post_type_archive()) {
            $classes[] = 'post-type-paged-' . $page;
        }
    }
    if (!empty($class)) {
        if (!is_array($class)) {
            $class = preg_split('#\s+#', $class);
        }
        $classes = array_merge($classes, $class);
    } else {
        // Ensure that we always coerce class to being an array.
        $class = array();
    }
    $classes = array_map('esc_attr', $classes);
    return apply_filters('body_class', $classes, $class);
}