Beispiel #1
0
function ewf_get_page_related($headerCheck = false, $page_for_posts = 0)
{
    global $post, $wp_query, $ewf_theme_layout;
    $page_data = array('debug' => array(), 'id' => 0, 'type' => null, 'type-sub' => null, 'type-layout' => null, 'type-sidebar' => null, 'page-posts' => get_option('page_for_posts', 0), 'page-front' => get_option('page_on_front', 0));
    $ewf_page_id = 0;
    ##	Check if there's a blog page ID provided
    ##
    if (!$page_for_posts) {
        $page_for_posts = get_option('page_for_posts');
    }
    if (is_object($post)) {
        $page_data['debug'][] = "Post Object";
        $page_data['id'] = $post->ID;
    }
    if (is_home() && !$page_data['page-posts'] && !$page_data['page-posts']) {
        $page_data['debug'][] = "Automatic home detected";
        $page_data['type'] = 'blog';
        $page_data['type-sub'] = 'default-index';
    }
    if (function_exists('is_shop') && is_product()) {
        $page_data['id'] = woocommerce_get_page_id('shop');
    } elseif (is_single()) {
        $page_data['debug'][] = "Detected: Single";
        $ewf_page_data = null;
        switch ($post->post_type) {
            case "post":
                #$ewf_page_data = get_page_by_title( get_option(EWF_SETUP_THNAME."_page_blog", null ) );
                $ewf_page_data = get_post($page_for_posts);
                $page_data['debug'][] = "Detected: Post Single";
                $page_data['type'] = 'blog';
                $page_data['type-sub'] = 'single';
                break;
            case EWF_PROJECTS_SLUG:
                $ewf_page_data = get_post($post->ID);
                $page_data['debug'][] = "Detected: Portfolio Single";
                $page_data['type'] = 'page';
                $page_data['type-sub'] = 'parent';
                $page_data['composer'] = count(explode('[/vc_row]', $post->post_content)) - 1;
                break;
        }
        if (is_object($ewf_page_data)) {
            $page_data['id'] = $ewf_page_data->ID;
        }
    } elseif (function_exists('is_shop') && (is_shop() || is_product_category() || is_product_tag() || is_woocommerce() || is_checkout() || is_account_page() || is_cart() || is_product())) {
        $page_data['debug'][] = "Detected: Shop";
        $page_data['type'] = 'shop';
        $page_data['id'] = woocommerce_get_page_id('shop');
        $page_content = get_post($page_data['id']);
        if (is_shop()) {
            $page_data['type-sub'] = 'shop';
        }
        if (is_cart()) {
            $page_data['type-sub'] = 'cart';
        }
        if (is_checkout()) {
            $page_data['type-sub'] = 'checkout';
        }
        if (is_product()) {
            $page_data['type-sub'] = 'product';
        }
        if (is_account_page()) {
            $page_data['type-sub'] = 'account';
        }
        if (is_product_category()) {
            $page_data['type-sub'] = 'category';
        }
        if (is_product_tag()) {
            $page_data['type-sub'] = 'tag';
        }
        $page_data['composer'] = count(explode('[/vc_row]', $page_content->post_content)) - 1;
    } elseif (is_page()) {
        $page_data['type'] = 'page';
        $page_data['debug'][] = "Detected: Page";
        if (count($post->ancestors)) {
            $page_data['debug'][] = "Detected: Child Page";
            $page_data['id-parent'] = $post->ancestors[0];
            $page_data['type-sub'] = 'child';
        } else {
            $page_data['debug'][] = "Detected: Page";
            $page_data['type-sub'] = 'parent';
        }
        $page_data['composer'] = count(explode('[/vc_row]', $post->post_content)) - 1;
        ## Check if the child's parent has a header image
        ##
        if ($headerCheck) {
            $ewf_child_page_parent_imgID = ewf_getHeaderImageID($ewf_page_id);
            $ewf_child_page_imgID = ewf_getHeaderImageID($post->ID);
            $page_data['debug'][] = "Parent does not have header image, returning child ID [" . $ewf_child_page_parent_imgID . '][' . $ewf_child_page_imgID . ']';
            ## If the child have an image but the parent also has one, return the child ID
            ##
            if ($ewf_child_page_imgID > 0) {
                $ewf_page_id = $post->ID;
                $page_data['debug'][] = "Parent does have header image, but child also has one, returning child ID [" . $ewf_child_page_parent_imgID . '][' . $ewf_child_page_imgID . ']';
            }
            ## If the parent does not have an image niether the child return null
            if ($ewf_child_page_parent_imgID == 0 && $ewf_child_page_imgID == 0) {
                $ewf_page_id = 0;
            }
        }
    } elseif (is_404()) {
        $page_data['debug'][] = "Detected: 404 Page";
        $page_data['id'] = get_option(EWF_SETUP_THNAME . "_page_404", 0);
        $page_data['type'] = 'page';
        $page_data['type-sub'] = '404';
        $page_content = get_post($page_data['page']['id']);
        $page_data['composer'] = count(explode('[/vc_row]', $page_content->post_content)) - 1;
        if (!$page_data['id']) {
            $page_data['debug'][] = "Page not selected on theme options";
        }
    } elseif (is_archive()) {
        $page_data['debug'][] = "Detected: Archive";
        if (is_tax(EWF_PROJECTS_TAX_SERVICES)) {
            // $ewf_page_data = get_page_by_title( get_option(EWF_SETUP_THNAME."_page_portfolio", null ) );
            $page_data['debug'][] = "Archive Taxonomy: EWF_PROJECTS_SLUG";
        } else {
            $ewf_page_data = get_post($page_for_posts);
            $page_data['type'] = 'blog';
            $page_data['type-sub'] = 'archive';
            if ($wp_query->is_category == 1 && $wp_query->is_archive == 1) {
                $page_data['type-sub'] = 'archive-category';
            }
            if ($wp_query->is_tag == 1 && $wp_query->is_archive == 1) {
                $page_data['type-sub'] = 'archive-tag';
            }
            if ($wp_query->is_category == null && $wp_query->is_archive == 1 && ($wp_query->is_month = 1 && $wp_query->is_tag == 0)) {
                $page_data['type-sub'] = 'archive-date';
            }
            $page_data['debug'][] = "Detected: Blog Archive - Return Blog Page ID";
        }
        if (is_object($ewf_page_data)) {
            $page_data['id'] = $ewf_page_data->ID;
        } else {
            $page_data['id'] = 0;
        }
    } elseif (is_search()) {
        $page_data['debug'][] = "Detected: Search";
        if ($page_for_posts) {
            $ewf_page_data = get_post($page_for_posts);
            if (is_object($ewf_page_data)) {
                $page_data['type'] = 'blog';
                $page_data['type-sub'] = 'search';
                if (!empty($_GET['post_type'])) {
                    $page_data['type'] = 'blog';
                } else {
                    $page_data['type'] = 'page';
                }
                $page_data['id'] = $ewf_page_data->ID;
                $page_data['debug'][] = "Search Page - Return Blog Page ID: " . $ewf_page_data->ID;
            }
        } else {
            $page_data['type'] = 'blog';
            $page_data['type-sub'] = 'search';
            $page_data['debug'][] = "Search Page - No blog page ID";
        }
    } elseif (is_home() && is_front_page() == false && $page_data['page-posts']) {
        $ewf_page_data = get_post($page_for_posts);
        if (is_object($ewf_page_data)) {
            $page_data['id'] = $ewf_page_data->ID;
            $page_data['type'] = 'blog';
            $page_data['type-sub'] = 'home';
            $page_data['debug'][] = "Static Posts Page ID: " . $ewf_page_data->ID;
        }
    }
    $page_data['type-layout'] = $ewf_theme_layout['layout']['types'][$page_data['type']]['layout'];
    $page_data['type-sidebar'] = $ewf_theme_layout['layout']['types'][$page_data['type']]['sidebar'];
    // ewf_debug($page_data, 'ewf_get_page_related');
    return $page_data;
}
function ewf_get_page_relatedID($headerCheck = false, $page_for_posts = 0)
{
    global $post;
    $ewf_page_id = 0;
    ##	Check if there's a blog page ID provided
    ##
    if ($page_for_posts == 0) {
        $page_for_posts = get_option('page_for_posts');
    }
    if (is_object($post)) {
        ewf_debug_log("debug", "Related ID: Post Object");
        #echo '<pre>';
        #	print_r($post);
        #echo '</pre>';
        $ewf_page_id = $post->ID;
    }
    if (is_single()) {
        $ewf_page_data = null;
        switch ($post->post_type) {
            case "post":
                #$ewf_page_data = get_page_by_title( get_option(EWF_SETUP_THNAME."_page_blog", null ) );
                $ewf_page_data = get_post($page_for_posts);
                ewf_debug_log("debug", "Related ID: Post Single");
                break;
                // case EWF_PROJECTS_SLUG:
                // $ewf_page_data = get_page_by_title( get_option(EWF_SETUP_THNAME."_page_portfolio", null ) );
                // ewf_debug_log("debug", "Related ID: EWF_PROJECTS_SLUG Single");
                // break;
        }
        if (is_object($ewf_page_data)) {
            $ewf_page_id = $ewf_page_data->ID;
        }
    } elseif (is_page() && count($post->ancestors)) {
        $ewf_page_id = $post->ancestors[0];
        ewf_debug_log("debug", "Related ID: Child Page");
        ## Check if the child's parent has a header image
        ##
        if ($headerCheck) {
            $ewf_child_page_parent_imgID = ewf_getHeaderImageID($ewf_page_id);
            $ewf_child_page_imgID = ewf_getHeaderImageID($post->ID);
            ewf_debug_log("debug", "Parent does not have header image, returning child ID [" . $ewf_child_page_parent_imgID . '][' . $ewf_child_page_imgID . ']');
            ## If the child have an image but the parent also has one, return the child ID
            ##
            if ($ewf_child_page_imgID > 0) {
                $ewf_page_id = $post->ID;
                ewf_debug_log("debug", "Parent does have header image, but child also has one, returning child ID [" . $ewf_child_page_parent_imgID . '][' . $ewf_child_page_imgID . ']');
            }
            ## If the parent does not have an image niether the child return null
            if ($ewf_child_page_parent_imgID == 0 && $ewf_child_page_imgID == 0) {
                $ewf_page_id = 0;
            }
        }
    } elseif (is_archive()) {
        if (is_tax(EWF_PROJECTS_TAX_SERVICES)) {
            $ewf_page_data = get_page_by_title(get_option(EWF_SETUP_THNAME . "_page_portfolio", null));
            ewf_debug_log("debug", "Related ID: EWF_PROJECTS_SLUG Taxonomy");
        } else {
            $ewf_page_data = get_post($page_for_posts);
            ewf_debug_log("debug", "Related ID: Archive Page - Return Blog Page ID");
        }
        if (is_object($ewf_page_data)) {
            $ewf_page_id = $ewf_page_data->ID;
        } else {
            $ewf_page_id = 0;
        }
    } elseif (is_search()) {
        $ewf_page_data = get_post($page_for_posts);
        if (is_object($ewf_page_data)) {
            $ewf_page_id = $ewf_page_data->ID;
            ewf_debug_log("debug", "Related ID: Search Page - Return Blog Page ID: " . $ewf_page_data->ID);
        }
    } elseif (is_home() && is_front_page() == false) {
        $ewf_page_data = get_post($page_for_posts);
        if (is_object($ewf_page_data)) {
            $ewf_page_id = $ewf_page_data->ID;
            ewf_debug_log("debug", "Related ID: Static Posts Page ID: " . $ewf_page_data->ID);
        }
    }
    return $ewf_page_id;
}