用户主页/作者页对齐 content-shell 与 author-hero 契约
去掉 author-hero query-var 传参,统一 content-wrap 壳层, 作者页侧栏改为 page-owned,不再 patch generic sidebar。
This commit is contained in:
+22
-10
@@ -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>
|
||||||
|
|||||||
@@ -129,17 +129,18 @@ $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-layout<?php echo !empty($user_home_settings['sidebar']) ? '' : ' content-layout--no-sidebar'; ?> aksrt-user-home__layout">
|
<div class="content-wrap">
|
||||||
<div class="content-layout__primary">
|
<div class="content-layout<?php echo !empty($user_home_settings['sidebar']) ? '' : ' content-layout--no-sidebar'; ?> aksrt-user-home__layout">
|
||||||
<?php
|
<div class="content-layout__primary">
|
||||||
// 作者 Hero 区:共享 partial
|
<?php
|
||||||
set_query_var('user', $user);
|
get_template_part('templates/parts/user/author-hero', null, [
|
||||||
set_query_var('dashboard', $dashboard);
|
'user' => $user,
|
||||||
set_query_var('user_home_settings', $user_home_settings);
|
'dashboard' => $dashboard,
|
||||||
set_query_var('is_author_page', false);
|
'user_home_settings' => $user_home_settings,
|
||||||
get_template_part('templates/parts/user/author-hero');
|
'is_author_page' => false,
|
||||||
?>
|
]);
|
||||||
|
?>
|
||||||
|
|
||||||
<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); ?>">
|
||||||
<div class="dashboard-tabs" role="tablist">
|
<div class="dashboard-tabs" role="tablist">
|
||||||
@@ -483,80 +484,81 @@ $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">
|
||||||
<?php foreach ($enabled_tabs as $tab_key) : ?>
|
<?php foreach ($enabled_tabs as $tab_key) : ?>
|
||||||
<a class="uc-stats__item" href="<?php echo esc_url(add_query_arg('tab', $tab_key, $home_url)); ?>">
|
<a class="uc-stats__item" href="<?php echo esc_url(add_query_arg('tab', $tab_key, $home_url)); ?>">
|
||||||
<span class="uc-stats__value"><?php echo esc_html((string) ($tab_counts[$tab_key] ?? 0)); ?></span>
|
<span class="uc-stats__value"><?php echo esc_html((string) ($tab_counts[$tab_key] ?? 0)); ?></span>
|
||||||
<span class="uc-stats__label"><?php echo esc_html($tab_labels[$tab_key] ?? ucfirst($tab_key)); ?></span>
|
<span class="uc-stats__label"><?php echo esc_html($tab_labels[$tab_key] ?? ucfirst($tab_key)); ?></span>
|
||||||
</a>
|
|
||||||
<?php endforeach; ?>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<?php if (!empty($user_contacts) && !empty($user_center_settings['social_links'])) : ?>
|
|
||||||
<div class="uc-sidebar__section">
|
|
||||||
<div class="uc-sidebar__title"><?php esc_html_e('公开联系', 'aksrt'); ?></div>
|
|
||||||
<div class="aksrt-user-home__contacts">
|
|
||||||
<?php if (function_exists('aksrt_render_social_links')) : ?>
|
|
||||||
<?php aksrt_render_social_links($user_contacts); ?>
|
|
||||||
<?php endif; ?>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<?php endif; ?>
|
|
||||||
|
|
||||||
<div class="uc-sidebar__section">
|
|
||||||
<div class="uc-sidebar__title"><?php esc_html_e('快捷入口', 'aksrt'); ?></div>
|
|
||||||
<div class="uc-sidebar__buttons">
|
|
||||||
<a href="<?php echo esc_url($home_url); ?>" class="uc-sidebar__btn">
|
|
||||||
<i class="fas fa-user" aria-hidden="true"></i>
|
|
||||||
<span><?php esc_html_e('主页首页', 'aksrt'); ?></span>
|
|
||||||
</a>
|
|
||||||
<?php if ($is_own_profile) : ?>
|
|
||||||
<a href="<?php echo esc_url(aksrt_get_user_center_url()); ?>" class="uc-sidebar__btn">
|
|
||||||
<i class="fas fa-cog" aria-hidden="true"></i>
|
|
||||||
<span><?php esc_html_e('个人中心', 'aksrt'); ?></span>
|
|
||||||
</a>
|
|
||||||
<?php endif; ?>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<?php if ($is_own_profile) : ?>
|
|
||||||
<?php
|
|
||||||
$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']);
|
|
||||||
$credits_enabled = class_exists('AKSRT_Settings') && AKSRT_Settings::credits_enabled();
|
|
||||||
?>
|
|
||||||
<?php if ($orders_url || $show_vip || $credits_enabled) : ?>
|
|
||||||
<div class="uc-sidebar__section">
|
|
||||||
<div class="uc-sidebar__title"><?php esc_html_e('交易服务', 'aksrt'); ?></div>
|
|
||||||
<div class="uc-sidebar__buttons">
|
|
||||||
<?php if ($orders_url) : ?>
|
|
||||||
<a href="<?php echo esc_url($orders_url); ?>" class="uc-sidebar__btn">
|
|
||||||
<i class="fas fa-receipt" aria-hidden="true"></i>
|
|
||||||
<span><?php esc_html_e('我的订单', 'aksrt'); ?></span>
|
|
||||||
</a>
|
</a>
|
||||||
<?php endif; ?>
|
<?php endforeach; ?>
|
||||||
<?php if ($show_vip) : ?>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php if (!empty($user_contacts) && !empty($user_center_settings['social_links'])) : ?>
|
||||||
|
<div class="uc-sidebar__section">
|
||||||
|
<div class="uc-sidebar__title"><?php esc_html_e('公开联系', 'aksrt'); ?></div>
|
||||||
|
<div class="aksrt-user-home__contacts">
|
||||||
|
<?php if (function_exists('aksrt_render_social_links')) : ?>
|
||||||
|
<?php aksrt_render_social_links($user_contacts); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<div class="uc-sidebar__section">
|
||||||
|
<div class="uc-sidebar__title"><?php esc_html_e('快捷入口', 'aksrt'); ?></div>
|
||||||
|
<div class="uc-sidebar__buttons">
|
||||||
|
<a href="<?php echo esc_url($home_url); ?>" class="uc-sidebar__btn">
|
||||||
|
<i class="fas fa-user" aria-hidden="true"></i>
|
||||||
|
<span><?php esc_html_e('主页首页', 'aksrt'); ?></span>
|
||||||
|
</a>
|
||||||
|
<?php if ($is_own_profile) : ?>
|
||||||
<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-crown" aria-hidden="true"></i>
|
<i class="fas fa-cog" aria-hidden="true"></i>
|
||||||
<span><?php esc_html_e('VIP 会员', 'aksrt'); ?></span>
|
<span><?php esc_html_e('个人中心', 'aksrt'); ?></span>
|
||||||
</a>
|
</a>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<?php if ($credits_enabled) : ?>
|
</div>
|
||||||
<a href="<?php echo esc_url(aksrt_get_user_center_url()); ?>" class="uc-sidebar__btn">
|
|
||||||
<i class="fas fa-coins" aria-hidden="true"></i>
|
|
||||||
<span><?php echo esc_html(AKSRT_Settings::get_currency_name()); ?></span>
|
|
||||||
</a>
|
|
||||||
<?php endif; ?>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
<?php if ($is_own_profile) : ?>
|
||||||
|
<?php
|
||||||
|
$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']);
|
||||||
|
$credits_enabled_side = class_exists('AKSRT_Settings') && AKSRT_Settings::credits_enabled();
|
||||||
|
?>
|
||||||
|
<?php if ($orders_url || $show_vip || $credits_enabled_side) : ?>
|
||||||
|
<div class="uc-sidebar__section">
|
||||||
|
<div class="uc-sidebar__title"><?php esc_html_e('交易服务', 'aksrt'); ?></div>
|
||||||
|
<div class="uc-sidebar__buttons">
|
||||||
|
<?php if ($orders_url) : ?>
|
||||||
|
<a href="<?php echo esc_url($orders_url); ?>" class="uc-sidebar__btn">
|
||||||
|
<i class="fas fa-receipt" aria-hidden="true"></i>
|
||||||
|
<span><?php esc_html_e('我的订单', 'aksrt'); ?></span>
|
||||||
|
</a>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php if ($show_vip) : ?>
|
||||||
|
<a href="<?php echo esc_url(aksrt_get_user_center_url()); ?>" class="uc-sidebar__btn">
|
||||||
|
<i class="fas fa-crown" aria-hidden="true"></i>
|
||||||
|
<span><?php esc_html_e('VIP 会员', 'aksrt'); ?></span>
|
||||||
|
</a>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php if ($credits_enabled_side) : ?>
|
||||||
|
<a href="<?php echo esc_url(aksrt_get_user_center_url()); ?>" class="uc-sidebar__btn">
|
||||||
|
<i class="fas fa-coins" aria-hidden="true"></i>
|
||||||
|
<span><?php echo esc_html(AKSRT_Settings::get_currency_name()); ?></span>
|
||||||
|
</a>
|
||||||
|
<?php endif; ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
</aside>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<?php endif; ?>
|
</div>
|
||||||
</aside>
|
|
||||||
<?php endif; ?>
|
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
|
|||||||
@@ -2,39 +2,42 @@
|
|||||||
/**
|
/**
|
||||||
* 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 : [];
|
||||||
return;
|
$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;
|
||||||
}
|
}
|
||||||
|
|
||||||
$user_id = (int) $user->ID;
|
$user_id = (int) $user->ID;
|
||||||
$dashboard = $dashboard ?? [];
|
$home_url = function_exists('aksrt_get_user_home_url') ? aksrt_get_user_home_url($user) : home_url('/');
|
||||||
$settings = $user_home_settings ?? [];
|
$show_cover = !empty($settings['cover']);
|
||||||
$is_author = !empty($is_author_page);
|
$show_follow = !empty($settings['follow']);
|
||||||
$home_url = function_exists('aksrt_get_user_home_url') ? aksrt_get_user_home_url($user) : home_url('/');
|
|
||||||
$show_cover = !empty($settings['cover']);
|
|
||||||
$show_follow = !empty($settings['follow']);
|
|
||||||
|
|
||||||
$post_count = (int) ($dashboard['post_count'] ?? 0);
|
$post_count = (int) ($dashboard['post_count'] ?? 0);
|
||||||
$comment_count = (int) ($dashboard['comment_count'] ?? 0);
|
$comment_count = (int) ($dashboard['comment_count'] ?? 0);
|
||||||
$favorite_count = (int) ($dashboard['favorite_count'] ?? 0);
|
$favorite_count = (int) ($dashboard['favorite_count'] ?? 0);
|
||||||
$contacts = $dashboard['user_contacts'] ?? [];
|
$contacts = $dashboard['user_contacts'] ?? [];
|
||||||
$social_on = !empty($dashboard['social_links_on']);
|
$social_on = !empty($dashboard['social_links_on']);
|
||||||
$signals = $dashboard['profile_signals'] ?? [];
|
$signals = $dashboard['profile_signals'] ?? [];
|
||||||
$notice = $dashboard['profile_notice'] ?? null;
|
$notice = $dashboard['profile_notice'] ?? null;
|
||||||
$show_report = !empty($dashboard['show_report']);
|
$show_report = !empty($dashboard['show_report']);
|
||||||
$bg_url = $dashboard['background_url'] ?? '';
|
$bg_url = $dashboard['background_url'] ?? '';
|
||||||
$is_own = !empty($dashboard['is_own_profile']);
|
$is_own = !empty($dashboard['is_own_profile']);
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<div class="aksrt-author-hero<?php echo $show_cover ? '' : ' aksrt-author-hero--no-cover'; ?>">
|
<div class="aksrt-author-hero<?php echo $show_cover ? '' : ' aksrt-author-hero--no-cover'; ?>">
|
||||||
|
|||||||
Reference in New Issue
Block a user