fix(frontend): align top navigation with reference theme

This commit is contained in:
kate522 committed 2026-10-29 18:10:00 +08:00
1 parent 1c501ff713
commit 9b27508a5b
12 files changed
+234 -607

No files matched your search

@@ -104,7 +104,7 @@ if (!function_exists('aksrt_footer_navbar_search')) :
echo '<div mini-touch="nav_search" touch-direction="top" class="main-search fixed-body main-bg box-body navbar-search nopw-sm">';
echo '<div class="container">';
echo $remote; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
echo '<div class="search-close-box"><button type="button" class="but cir" data-toggle-class data-target=".navbar-search" aria-label="'
echo '<div class="mb20 search-close-box"><button type="button" class="but cir" data-toggle-class data-target=".navbar-search" aria-label="'
. esc_attr__('关闭搜索', 'aksrt') . '"><svg class="ic-close" aria-hidden="true"><use xlink:href="#icon-close"></use></svg></button></div>';
echo '</div></div>';
}
+5 -1
View File
@@ -63,9 +63,13 @@ if (!function_exists('aksrt_nav_mobile_content')) :
if (in_array('m_menu', (array) ($ctx['theme_positions'] ?? []), true)) {
$top_btns .= '<a href="javascript:;" class="toggle-theme toggle-radius" id="theme-toggle-mobile" title="'
. esc_attr__('切换亮暗色', 'aksrt') . '">';
$top_btns .= '<i class="fa fas fa-toggle-theme" aria-hidden="true"></i>';
$top_btns .= '<i class="fa far fa-toggle-theme" aria-hidden="true"></i>';
$top_btns .= '</a>';
}
if ('center' !== ($ctx['mobile_layout'] ?? 'center')) {
$top_btns .= '<a href="javascript:;" class="toggle-radius main-search-btn" aria-label="'
. esc_attr__('打开搜索', 'aksrt') . '"><svg class="icon" aria-hidden="true"><use xlink:href="#icon-search"></use></svg></a>';
}
if (function_exists('aksrt_get_translate_language_btn')) {
$top_btns .= aksrt_get_translate_language_btn('pull-right');
}
+16 -13
View File
@@ -71,9 +71,11 @@ if (!function_exists('aksrt_navbar_header')) :
$button = '<button type="button" data-toggle-class="mobile-navbar-show" data-target="body" class="navbar-toggle" aria-label="'
. esc_attr__('打开菜单', 'aksrt') . '">';
$button .= '<i class="em12 css-icon i-menu"><i></i></i></button>';
$button .= '<a href="javascript:;" class="navbar-toggle main-search-btn" aria-label="'
. esc_attr__('打开搜索', 'aksrt') . '">';
$button .= '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-search"></use></svg></a>';
if ('center' === ($ctx['mobile_layout'] ?? 'center')) {
$button .= '<a href="javascript:;" class="navbar-toggle main-search-btn" aria-label="'
. esc_attr__('打开搜索', 'aksrt') . '">';
$button .= '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-search"></use></svg></a>';
}
echo '<div class="navbar-header">';
echo '<div class="navbar-brand">' . $logo . '</div>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
@@ -100,7 +102,7 @@ if (!function_exists('aksrt_get_menu_search')) :
echo '<input type="text" class="form-control search-input focus-show" name="s" value="'
. esc_attr(get_search_query()) . '" placeholder="' . esc_attr($placeholder) . '" autocomplete="off">';
echo '<div class="abs-right muted-3-color"><button type="submit" class="null" aria-label="'
. esc_attr__('搜索', 'aksrt') . '"><i class="fa fas fa-search" aria-hidden="true"></i></button></div>';
. esc_attr__('搜索', 'aksrt') . '"><svg class="icon" aria-hidden="true"><use xlink:href="#icon-search"></use></svg></button></div>';
if (function_exists('aksrt_get_remote_box')) {
echo aksrt_get_remote_box([ // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
'class' => '',
@@ -322,11 +324,11 @@ if (!function_exists('aksrt_menu_button')) :
if (in_array('pc_nav', (array) ($ctx['theme_positions'] ?? []), true)) {
$utility_buttons .= '<a href="javascript:;" class="toggle-theme toggle-radius" id="theme-toggle-desktop" title="'
. esc_attr__('切换亮暗色', 'aksrt') . '">';
$utility_buttons .= '<i class="fa fas fa-toggle-theme" aria-hidden="true"></i>';
$utility_buttons .= '<i class="fa far fa-toggle-theme" aria-hidden="true"></i>';
$utility_buttons .= '</a>';
}
if (function_exists('aksrt_get_translate_language_btn')) {
$utility_buttons .= aksrt_get_translate_language_btn('aksrt-navbar-language');
$utility_buttons .= aksrt_get_translate_language_btn('ml10 pull-right');
}
// Notifications, user and search.
@@ -341,7 +343,7 @@ if (!function_exists('aksrt_menu_button')) :
if ($unread > 0) {
$notification_but .= '<span class="aksrt-notification-badge">' . esc_html((string) min(99, $unread)) . '</span>';
}
$notification_but .= '</a></li>';
$notification_but .= "</a></li>\n";
}
$sign_but = '';
@@ -349,7 +351,7 @@ if (!function_exists('aksrt_menu_button')) :
if ('2' === $layout) {
if ($user_id > 0) {
$avatar = aksrt_get_avatar_html($user_id, 36, ['class' => 'avatar']);
$sign_but = '<li><a href="javascript:;" class="navbar-avatar aksrt-nav-avatar">' . $avatar . '</a><ul class="sub-menu">'
$sign_but = '<li><a href="javascript:;" class="navbar-avatar">' . $avatar . '</a><ul class="sub-menu">'
. $user_sub . '</ul></li>';
} else {
$sign_but = '<li><a href="javascript:;" class="signin-loader">' . esc_html__('登录', 'aksrt') . '</a></li>';
@@ -360,7 +362,7 @@ if (!function_exists('aksrt_menu_button')) :
} else {
$cls = 'aksrt-nav-icon' . ($user_id > 0 ? '' : ' signin-loader');
$sign_but = '<li><a href="javascript:;" class="' . esc_attr($cls) . '">'
. '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-user"></use></svg></a>'
. '<svg class="icon" viewBox="50 0 924 924" aria-hidden="true"><use xlink:href="#icon-user"></use></svg></a>'
. '<ul class="sub-menu">' . $user_sub . '</ul></li>';
}
@@ -370,8 +372,9 @@ if (!function_exists('aksrt_menu_button')) :
. esc_attr__('打开搜索', 'aksrt') . '"><svg class="icon" aria-hidden="true"><use xlink:href="#icon-search"></use></svg></a></li>';
}
$account = '<ul class="list-inline splitters relative aksrt-navbar-account'
. ($user_id <= 0 && '2' === $layout ? ' navbar-text' : '') . '">'
// Inline list items retain the reference whitespace between controls.
$sign_but .= "\n";
$account = '<ul class="list-inline splitters relative">'
. $notification_but . $sign_but . $search_but . '</ul>';
// Reference cluster split: publish/VIP, theme + language, account row.
@@ -387,10 +390,10 @@ if (!function_exists('aksrt_menu_button')) :
. $account . '</div>';
$fold = '<div class="navbar-form navbar-right hide show-nav-but" style="margin-right:-10px;">'
. '<a data-toggle-class data-target=".nav.navbar-nav" href="javascript:;" class="aksrt-nav-icon" aria-label="'
. '<a data-toggle-class data-target=".nav.navbar-nav" href="javascript:;" class="but" aria-label="'
. esc_attr__('展开菜单', 'aksrt') . '"><svg class="icon" viewBox="0 0 1024 1024" aria-hidden="true"><use xlink:href="#icon-menu_2"></use></svg></a></div>';
$html = $fold . $button . $right_but;
$html = $fold . ('3' === $layout ? $right_but . $button : $button . $right_but);
echo $html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
-17
View File
@@ -27,23 +27,6 @@ function aksrt_menu_pz(int $id, string $key = '', $default = '') {
return $options[$id][$key] ?? $default;
}
/**
* Decoration for a menu item (meta only).
*
* @param WP_Post|object $menu_item Menu item.
* @return array{icon:string,badge_text:string,badge_class:string,submenu_s:bool,submenu_type:string}
*/
function aksrt_get_menu_item_decoration($menu_item): array {
$id = (int) ($menu_item->ID ?? 0);
return [
'icon' => (string) aksrt_menu_pz($id, 'icon', ''),
'badge_text' => (string) aksrt_menu_pz($id, 'badge', ''),
'badge_class' => (string) aksrt_menu_pz($id, 'badge_class', ''),
'submenu_s' => !empty(aksrt_menu_pz($id, 'submenu_s', false)),
'submenu_type' => sanitize_key((string) aksrt_menu_pz($id, 'submenu_type', '')),
];
}
/**
* @param string $icon_class Icon-picker value (FA5 class, zibsvg- or customsvg-).
* @param bool $enabled Global switch.