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;
}
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;
}
 * We buffer the output from the inject-prmain up to the end of the page content
 * We create the page-navi part of the infobar after we restart the loop
 * Then output the infobar with the page breadcrumbs and the posts page-navi and the page buffer
 * Finally, start the new loop.
 */
$GLOBALS['weaverx_page_who'] = 'pwp';
$GLOBALS['weaverx_page_is_archive'] = false;
// need these for body class
get_header('pwp');
// build infobar front part - replace get_template_part('infobar'); with local code
// we need to build it in a buffer
weaverx_container_div('pwp');
// #container
ob_start();
// generate the stuff that comes AFTER the infobar for pwp since we can't generate page nav until later
$sb_layout = weaverx_sb_layout('blog');
// ********* get_template_part('templates/infobar');	// put the info bar
weaverx_sidebar_before($sb_layout, 'blog');
// sidebars if top-stacking
do_action('weaverx_per_page');
$paged = weaverx_get_page();
// and next the content area.
echo '<div id="content" role="main" ' . weaverx_content_class($sb_layout, 'pwp', false) . ">\n";
weaverx_inject_area('precontent');
weaverx_sb_precontent('blog');
weaverx_post_count_clear();
the_post();
if (!is_front_page()) {
    $GLOBALS['weaverx_pwp_title'] = get_the_title();
    // Make breadcrumbs work a bit better
}