fix(page-display): isolate header component page scopes
This commit is contained in:
1 parent
d4a9b7fd98
commit
a5ed4bbb6f
3 files changed
+61
-33
No files matched your search
@@ -48,42 +48,58 @@ if (!function_exists('aksrt_get_page_header_slider_config')) {
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('aksrt_header_slide_current_page_type')) {
|
||||
/**
|
||||
* Resolve one mutually exclusive page type for the header component.
|
||||
*
|
||||
* Custom rewrite requests can retain WordPress's is_home flag, so the
|
||||
* explicit theme surfaces must win before the home fallback is evaluated.
|
||||
*/
|
||||
function aksrt_header_slide_current_page_type(): string {
|
||||
if (is_author() || (function_exists('aksrt_is_user_home_page') && aksrt_is_user_home_page())) {
|
||||
return 'author';
|
||||
}
|
||||
if (function_exists('aksrt_is_user_center_page') && aksrt_is_user_center_page()) {
|
||||
return 'user_center';
|
||||
}
|
||||
if (is_front_page()) {
|
||||
return 'home';
|
||||
}
|
||||
if (is_category()) {
|
||||
return 'category';
|
||||
}
|
||||
if (is_tag()) {
|
||||
return 'tag';
|
||||
}
|
||||
if (is_singular('post')) {
|
||||
return 'single';
|
||||
}
|
||||
if (is_search()) {
|
||||
return 'search';
|
||||
}
|
||||
if (is_page()) {
|
||||
foreach (aksrt_header_slide_excluded_page_templates() as $template) {
|
||||
if (is_page_template($template)) {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
return 'page';
|
||||
}
|
||||
if (is_home()) {
|
||||
return 'home';
|
||||
}
|
||||
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('aksrt_header_slide_matches_query')) {
|
||||
function aksrt_header_slide_matches_query(string $type): bool {
|
||||
$type = sanitize_key($type);
|
||||
switch ($type) {
|
||||
case 'home':
|
||||
return is_home() || is_front_page();
|
||||
case 'category':
|
||||
return is_category();
|
||||
case 'tag':
|
||||
return is_tag();
|
||||
case 'user_home':
|
||||
case 'author':
|
||||
return is_author() || (function_exists('aksrt_is_user_home_page') && aksrt_is_user_home_page());
|
||||
case 'user_center':
|
||||
return function_exists('aksrt_is_user_center_page') && aksrt_is_user_center_page();
|
||||
case 'single':
|
||||
return is_singular('post');
|
||||
case 'search':
|
||||
return is_search();
|
||||
case 'page':
|
||||
if (!is_page()) {
|
||||
return false;
|
||||
}
|
||||
if ((function_exists('aksrt_is_user_home_page') && aksrt_is_user_home_page())
|
||||
|| (function_exists('aksrt_is_user_center_page') && aksrt_is_user_center_page())) {
|
||||
return false;
|
||||
}
|
||||
foreach (aksrt_header_slide_excluded_page_templates() as $template) {
|
||||
if (is_page_template($template)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
if ($type === 'user_home') {
|
||||
$type = 'author';
|
||||
}
|
||||
|
||||
return false;
|
||||
return $type !== '' && $type === aksrt_header_slide_current_page_type();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user