false, 'echo' => false, 'fallback_cb' => false, 'items_wrap' => '', 'theme_location' => $location, ]; if ($walker) { $args['walker'] = $walker; } if (!wp_is_mobile()) { $args['depth'] = 0; } else { $args['depth'] = 3; } $menu = ''; if (has_nav_menu($location)) { $menu = (string) wp_nav_menu($args); } if ($menu === '' && is_super_admin()) { $menu = ''; } if ($echo) { echo $menu; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped return; } return $menu; } endif; if (!function_exists('aksrt_navbar_header')) : /** * Logo + mobile toggles (legacy). * * @param array $ctx */ function aksrt_navbar_header(array $ctx): void { $brand_name = (string) ($ctx['brand_name'] ?? get_bloginfo('name')); $logo_inner = !empty($ctx['logo_html']) ? $ctx['logo_html'] : '' . esc_html($brand_name) . ''; $logo = ''; $button = ''; if (($ctx['mobile_layout'] ?? 'center') === 'center') { $button .= ''; $button .= ''; } echo ''; } endif; if (!function_exists('aksrt_get_menu_search')) : /** * Layout-2 inline search form (legacy simplified). * * @param array $ctx */ function aksrt_get_menu_search(array $ctx): void { if (is_search()) { return; } $placeholder = (string) ($ctx['search_placeholder'] ?? __('搜索内容', 'aksrt')); // legacy: form + input + remote-box (action=menu_search). echo ''; } endif; if (!function_exists('aksrt_header_user_box_html')) : /** * User dropdown inner content for nav sub-menu (logged-in / guest). * * @param array $ctx */ function aksrt_header_user_box_html(array $ctx): string { static $html = null; if ($html !== null) { return $html; } $user_id = (int) ($ctx['user_id'] ?? 0); $con = ''; if ($user_id > 0) { $user = $ctx['current_user'] instanceof WP_User ? $ctx['current_user'] : wp_get_current_user(); $display_name = $user->display_name ?: $user->user_login; $avatar = aksrt_get_avatar_html($user_id, 44, ['alt' => $display_name]); $desc = (string) ($ctx['user_desc'] ?? ''); $vip_badge = function_exists('aksrt_render_vip_badge') ? aksrt_render_vip_badge($user_id, 'sm') : ''; // Level and certification icons ride inline to the right of the display name. $level_badge = (class_exists('\AKSRT\User\Level') && method_exists('\AKSRT\User\Level', 'get_badge_html')) ? \AKSRT\User\Level::get_badge_html($user_id, 'aksrt-user-level-icon--header') : ''; $medal_badge = function_exists('aksrt_get_worn_medal_icon') ? aksrt_get_worn_medal_icon($user_id, 'aksrt-header-user-medal') : ''; $certification_badge = ''; if (function_exists('aksrt_get_user_identity_signals')) { foreach (aksrt_get_user_identity_signals($user_id) as $signal) { if ((string) ($signal['type'] ?? '') !== 'verify') { continue; } $icon_url = esc_url((string) ($signal['icon_url'] ?? '')); $title = (string) ($signal['title'] ?? $signal['label'] ?? ''); if ($icon_url !== '' && $title !== '') { $certification_badge = ''; } break; } } $payvip = function_exists('aksrt_header_payvip_bar') ? aksrt_header_payvip_bar($user_id) : ''; $checkin = function_exists('aksrt_header_user_checkin_btn') ? aksrt_header_user_checkin_btn($user_id) : ''; $wallet = function_exists('aksrt_header_user_wallet_mini') ? aksrt_header_user_wallet_mini($user_id) : ''; $badges = function_exists('aksrt_header_user_badges_row') ? aksrt_header_user_badges_row($user_id) : ''; $unread = (int) ($ctx['unread_count'] ?? 0); $msg_url = (string) ($ctx['messages_url'] ?? ''); $positions = (array) ($ctx['message_icon_positions'] ?? []); $msg_icon = ''; if ($msg_url !== '' && in_array('avatar_dropdown', $positions, true)) { $msg_icon = ''; $msg_icon .= ''; if ($unread > 0) { $msg_icon .= '' . esc_html((string) min(99, $unread)) . ''; } $msg_icon .= ''; } $href = '
'; $href .= ''; $href .= '
'; $href .= '
' . esc_html__('用户中心', 'aksrt') . '
'; $orders = (string) ($ctx['orders_url'] ?? ''); if ($orders !== '') { $href .= ''; $href .= '
'; $href .= '
' . esc_html__('我的订单', 'aksrt') . '
'; } if (!empty($ctx['can_publish'])) { $pub_url = (string) $ctx['publish_url']; $href .= ''; $href .= '
'; $href .= '
' . esc_html__('发布内容', 'aksrt') . '
'; } $href .= ''; $href .= '
'; $href .= '
' . esc_html__('退出登录', 'aksrt') . '
'; $href .= '
'; if (is_super_admin()) { $href .= ''; } $con = ''; $con .= $payvip ? $payvip : ''; $con .= $checkin ? '
' . $checkin . '
' : ''; $con .= $wallet ? '
' . $wallet . '
' : ''; $con .= $badges; $con .= '
'; $con .= '
' . $href . '
'; } else { $vip_guest = ''; if (class_exists('\AKSRT\Settings\Settings')) { $vs = \AKSRT\Settings\Settings::get_payment_vip_settings(); if (!empty($vs['enabled']) && !empty($vs['nav_user_pay_vip'])) { $vip_guest = '
'; } } $href = $vip_guest; $href .= '
'; $href .= ''; if (get_option('users_can_register')) { $href .= ''; } $href .= '
' . esc_html__('找回密码', 'aksrt') . '
'; $href .= '
'; $con = '
' . $href . '
'; if (class_exists('\AKSRT\Auth\OAuth') && method_exists(\AKSRT\Auth\OAuth::get_instance(), 'render_social_buttons')) { $oauth_html = (string) \AKSRT\Auth\OAuth::get_instance()->render_social_buttons(__('快速登录', 'aksrt')); if ($oauth_html !== '') { $con .= ''; $con .= ''; } } } $html = '
' . $con . '
'; return $html; } endif; if (!function_exists('aksrt_menu_button')) : /** * Right cluster: fold, publish/VIP, theme, user, search (legacy). * * @param array $ctx */ function aksrt_menu_button(array $ctx): void { $layout = (string) ($ctx['layout'] ?? '1'); $user_id = (int) ($ctx['user_id'] ?? 0); $actions = ''; // Publish and membership actions. if (function_exists('aksrt_render_header_menu_buttons')) { $actions = aksrt_render_header_menu_buttons(); } // Theme toggle. $utility_buttons = ''; if (in_array('pc_nav', (array) ($ctx['theme_positions'] ?? []), true)) { $utility_buttons .= ''; $utility_buttons .= ''; $utility_buttons .= ''; } if (function_exists('aksrt_get_translate_language_btn')) { $utility_buttons .= aksrt_get_translate_language_btn('aksrt-navbar-language'); } // Notifications, user and search. $notification_but = ''; $messages_url = (string) ($ctx['messages_url'] ?? ''); $positions = (array) ($ctx['message_icon_positions'] ?? []); if ($user_id > 0 && $messages_url !== '' && in_array('nav_menu', $positions, true)) { $unread = (int) ($ctx['unread_count'] ?? 0); $notification_but = '
  • ' . ''; if ($unread > 0) { $notification_but .= '' . esc_html((string) min(99, $unread)) . ''; } $notification_but .= '
  • '; } $sign_but = ''; $user_sub = '
    ' . aksrt_header_user_box_html($ctx) . '
    '; if ('2' === $layout) { if ($user_id > 0) { $avatar = aksrt_get_avatar_html($user_id, 36, ['class' => 'avatar']); $sign_but = '
  • ' . $avatar . '
  • '; } else { $sign_but = '
  • '; if (get_option('users_can_register')) { $sign_but .= '
  • '; } } } else { $cls = 'aksrt-nav-icon' . ($user_id > 0 ? '' : ' signin-loader'); $sign_but = '
  • ' . '' . '
  • '; } $search_but = ''; if ('2' !== $layout) { $search_but = '
  • '; } $account = ''; $button = ''; $fold = ''; $html = $fold . $button; echo $html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } endif;