function weaverx_body_classes($classes)
{
    /**
     * Add classes to body depending of page type to make sidebar templates work.
     */
    $pwp = in_array('page-template-paget-posts-php', $classes);
    $has_posts = false;
    if ($pwp) {
        // page with posts - add stuff like blog
        $classes[] = 'blog';
        $has_posts = true;
    }
    if (!is_multi_author()) {
        $classes[] = 'single-author';
    }
    if (is_singular() && !is_home() && !$pwp) {
        // don't make pwp singular
        $classes[] = 'singular';
    }
    if (!is_user_logged_in()) {
        $classes[] = 'not-logged-in';
    }
    $classes[] = 'weaverx-theme-body is-menu-desktop is-menu-default';
    if (weaverx_get_per_page_value('_pp_bodyclass') != '') {
        // add body class per page
        $classes[] = weaverx_get_per_page_value('_pp_bodyclass');
    }
    if (isset($GLOBALS['weaverx_page_who'])) {
        if ($GLOBALS['weaverx_page_is_archive']) {
            $sb_layout = weaverx_sb_layout_archive($GLOBALS['weaverx_page_who']);
            if ($GLOBALS['weaverx_page_who'] != '404') {
                $has_posts = true;
            }
        } else {
            $sb_layout = weaverx_sb_layout($GLOBALS['weaverx_page_who']);
        }
        $classes[] = 'weaverx-page-' . $GLOBALS['weaverx_page_who'];
        $GLOBALS['weaverx_sb_layout'] = $sb_layout;
        $classes[] = 'weaverx-sb-' . $sb_layout;
        if ($has_posts || $GLOBALS['weaverx_page_who'] == 'single' || $GLOBALS['weaverx_page_who'] == 'blog') {
            $classes[] = 'has-posts';
        }
    }
    return $classes;
}
function weaverx_page_lead($who, $archive = false)
{
    // common lead in for all pages with infobar and top widget area
    $GLOBALS['weaverx_page_who'] = $who;
    $GLOBALS['weaverx_page_is_archive'] = $archive;
    get_header($who);
    if ($archive) {
        $sb_layout = weaverx_sb_layout_archive($who);
    } else {
        $sb_layout = weaverx_sb_layout($who);
    }
    weaverx_container_div($who);
    // #container
    get_template_part('templates/infobar');
    weaverx_sidebar_before($sb_layout, $who);
    // sidebars if top-stacking
    do_action('weaverx_per_page');
    echo '<div id="content" role="main"' . weaverx_content_class($sb_layout, $who, false) . ">\n";
    weaverx_inject_area('precontent');
    return $sb_layout;
}