用户主页/作者页对齐 content-shell 与 author-hero 契约

去掉 author-hero query-var 传参,统一 content-wrap 壳层,
作者页侧栏改为 page-owned,不再 patch generic sidebar。
This commit is contained in:
kate522 committed 2026-07-10 13:55:59 +08:00
1 parent 8849540fda
commit a8b2997f76
3 files changed
+47 -30

No files matched your search

+22 -10
View File
@@ -44,19 +44,18 @@ $user_home_settings = class_exists('AKSRT_Settings')
require_once AKSRT_DIR . '/templates/parts/user-shared-helpers.php'; require_once AKSRT_DIR . '/templates/parts/user-shared-helpers.php';
?> ?>
<main id="main-content" class="site-main container aksrt-author-page" tabindex="-1"> <main id="main-content" class="site-main container content-shell content-shell--stream aksrt-author-page" tabindex="-1">
<div class="content-wrap"> <div class="content-wrap">
<div class="content-layout aksrt-author-page__layout"> <div class="content-layout<?php echo !empty($user_home_settings['sidebar']) ? '' : ' content-layout--no-sidebar'; ?> aksrt-author-page__layout">
<div class="content-layout__primary"> <div class="content-layout__primary">
<?php <?php
$user = $author; get_template_part('templates/parts/user/author-hero', null, [
$is_author_page = true; 'user' => $author,
set_query_var('user', $user); 'dashboard' => $dashboard,
set_query_var('dashboard', $dashboard); 'user_home_settings' => $user_home_settings,
set_query_var('user_home_settings', $user_home_settings); 'is_author_page' => true,
set_query_var('is_author_page', true); ]);
get_template_part('templates/parts/user/author-hero');
?> ?>
<?php do_action('aksrt_author_before_content', $user_id); ?> <?php do_action('aksrt_author_before_content', $user_id); ?>
@@ -109,7 +108,20 @@ require_once AKSRT_DIR . '/templates/parts/user-shared-helpers.php';
</div> </div>
<?php if (!empty($user_home_settings['sidebar'])) : ?> <?php if (!empty($user_home_settings['sidebar'])) : ?>
<?php get_sidebar(); ?> <aside class="sidebar aksrt-author-page__aside" role="complementary" aria-label="<?php esc_attr_e('作者页侧栏', 'aksrt'); ?>">
<?php
$sidebar_id = is_active_sidebar('author-sidebar') ? 'author-sidebar' : 'sidebar-blog';
if (is_active_sidebar('all_sidebar_top')) {
dynamic_sidebar('all_sidebar_top');
}
if (is_active_sidebar($sidebar_id)) {
dynamic_sidebar($sidebar_id);
}
if (is_active_sidebar('all_sidebar_bottom')) {
dynamic_sidebar('all_sidebar_bottom');
}
?>
</aside>
<?php endif; ?> <?php endif; ?>
</div> </div>
</div> </div>
+13 -11
View File
@@ -129,16 +129,17 @@ $svg_empty_favorite = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 2
$home_url = function_exists('aksrt_get_user_home_url') ? aksrt_get_user_home_url($user) : home_url('/'); $home_url = function_exists('aksrt_get_user_home_url') ? aksrt_get_user_home_url($user) : home_url('/');
?> ?>
<main id="main-content" class="site-main content-shell" tabindex="-1"> <main id="main-content" class="site-main container content-shell content-shell--stream aksrt-user-home" tabindex="-1">
<div class="content-wrap">
<div class="content-layout<?php echo !empty($user_home_settings['sidebar']) ? '' : ' content-layout--no-sidebar'; ?> aksrt-user-home__layout"> <div class="content-layout<?php echo !empty($user_home_settings['sidebar']) ? '' : ' content-layout--no-sidebar'; ?> aksrt-user-home__layout">
<div class="content-layout__primary"> <div class="content-layout__primary">
<?php <?php
// 作者 Hero 区:共享 partial get_template_part('templates/parts/user/author-hero', null, [
set_query_var('user', $user); 'user' => $user,
set_query_var('dashboard', $dashboard); 'dashboard' => $dashboard,
set_query_var('user_home_settings', $user_home_settings); 'user_home_settings' => $user_home_settings,
set_query_var('is_author_page', false); 'is_author_page' => false,
get_template_part('templates/parts/user/author-hero'); ]);
?> ?>
<div class="dashboard dashboard--public" data-default-tab="<?php echo esc_attr($_uh_default_tab); ?>"> <div class="dashboard dashboard--public" data-default-tab="<?php echo esc_attr($_uh_default_tab); ?>">
@@ -483,7 +484,7 @@ $home_url = function_exists('aksrt_get_user_home_url') ? aksrt_get_user_home_url
</div> </div>
<?php if (!empty($user_home_settings['sidebar'])) : ?> <?php if (!empty($user_home_settings['sidebar'])) : ?>
<div class="sidebar uc-sidebar aksrt-user-home__aside" role="complementary" aria-label="<?php esc_attr_e('用户主页侧栏', 'aksrt'); ?>"> <aside class="sidebar uc-sidebar aksrt-user-home__aside" role="complementary" aria-label="<?php esc_attr_e('用户主页侧栏', 'aksrt'); ?>">
<div class="uc-sidebar__section"> <div class="uc-sidebar__section">
<div class="uc-sidebar__title"><?php esc_html_e('主页概览', 'aksrt'); ?></div> <div class="uc-sidebar__title"><?php esc_html_e('主页概览', 'aksrt'); ?></div>
<div class="uc-stats"> <div class="uc-stats">
@@ -527,9 +528,9 @@ $home_url = function_exists('aksrt_get_user_home_url') ? aksrt_get_user_home_url
<?php <?php
$orders_url = function_exists('aksrt_get_orders_page_url') ? aksrt_get_orders_page_url() : ''; $orders_url = function_exists('aksrt_get_orders_page_url') ? aksrt_get_orders_page_url() : '';
$show_vip = class_exists('AKSRT_Settings') && !empty(AKSRT_Settings::get_all()['payment_vip_enabled']); $show_vip = class_exists('AKSRT_Settings') && !empty(AKSRT_Settings::get_all()['payment_vip_enabled']);
$credits_enabled = class_exists('AKSRT_Settings') && AKSRT_Settings::credits_enabled(); $credits_enabled_side = class_exists('AKSRT_Settings') && AKSRT_Settings::credits_enabled();
?> ?>
<?php if ($orders_url || $show_vip || $credits_enabled) : ?> <?php if ($orders_url || $show_vip || $credits_enabled_side) : ?>
<div class="uc-sidebar__section"> <div class="uc-sidebar__section">
<div class="uc-sidebar__title"><?php esc_html_e('交易服务', 'aksrt'); ?></div> <div class="uc-sidebar__title"><?php esc_html_e('交易服务', 'aksrt'); ?></div>
<div class="uc-sidebar__buttons"> <div class="uc-sidebar__buttons">
@@ -545,7 +546,7 @@ $home_url = function_exists('aksrt_get_user_home_url') ? aksrt_get_user_home_url
<span><?php esc_html_e('VIP 会员', 'aksrt'); ?></span> <span><?php esc_html_e('VIP 会员', 'aksrt'); ?></span>
</a> </a>
<?php endif; ?> <?php endif; ?>
<?php if ($credits_enabled) : ?> <?php if ($credits_enabled_side) : ?>
<a href="<?php echo esc_url(aksrt_get_user_center_url()); ?>" class="uc-sidebar__btn"> <a href="<?php echo esc_url(aksrt_get_user_center_url()); ?>" class="uc-sidebar__btn">
<i class="fas fa-coins" aria-hidden="true"></i> <i class="fas fa-coins" aria-hidden="true"></i>
<span><?php echo esc_html(AKSRT_Settings::get_currency_name()); ?></span> <span><?php echo esc_html(AKSRT_Settings::get_currency_name()); ?></span>
@@ -558,6 +559,7 @@ $home_url = function_exists('aksrt_get_user_home_url') ? aksrt_get_user_home_url
</aside> </aside>
<?php endif; ?> <?php endif; ?>
</div> </div>
</div>
</main> </main>
<?php get_footer(); ?> <?php get_footer(); ?>
+12 -9
View File
@@ -2,25 +2,28 @@
/** /**
* Author Hero — shared hero section for author archive and public user homepage. * Author Hero — shared hero section for author archive and public user homepage.
* *
* Expected variables (passed via get_template_part or set_query_var): * Contract: get_template_part(..., null, $args)
* $user (WP_User) Target user object. * user WP_User
* $dashboard (array) Data from aksrt_get_user_dashboard_view(). * dashboard array from aksrt_get_user_dashboard_view()
* $user_home_settings (array) User home display settings. * user_home_settings array
* $is_author_page (bool) True when rendering on author.php (archive context). * is_author_page bool
* *
* @package AKSRT * @package AKSRT
*/ */
defined('ABSPATH') || exit; defined('ABSPATH') || exit;
if (empty($user) || !($user instanceof WP_User)) { $args = is_array($args ?? null) ? $args : [];
$user = $args['user'] ?? null;
$dashboard = is_array($args['dashboard'] ?? null) ? $args['dashboard'] : [];
$settings = is_array($args['user_home_settings'] ?? null) ? $args['user_home_settings'] : [];
$is_author = !empty($args['is_author_page']);
if (!($user instanceof WP_User)) {
return; return;
} }
$user_id = (int) $user->ID; $user_id = (int) $user->ID;
$dashboard = $dashboard ?? [];
$settings = $user_home_settings ?? [];
$is_author = !empty($is_author_page);
$home_url = function_exists('aksrt_get_user_home_url') ? aksrt_get_user_home_url($user) : home_url('/'); $home_url = function_exists('aksrt_get_user_home_url') ? aksrt_get_user_home_url($user) : home_url('/');
$show_cover = !empty($settings['cover']); $show_cover = !empty($settings['cover']);
$show_follow = !empty($settings['follow']); $show_follow = !empty($settings['follow']);