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; }