Render shop_product top/sidebar/bottom and cart fluid areas; register shop home/order sidebar slots for zibll shop layout parity.
433 lines
19 KiB
PHP
433 lines
19 KiB
PHP
<?php
|
|
/**
|
|
* @package AKSRT
|
|
*/
|
|
|
|
namespace AKSRT\Core;
|
|
|
|
defined('ABSPATH') || exit;
|
|
|
|
trait SetupPart1 {
|
|
|
|
public function register_sidebars(): void {
|
|
$fluid_wrapper_before = '<div id="%1$s" class="zib-widget %2$s">';
|
|
$card_wrapper_before = '<div id="%1$s" class="zib-widget %2$s">';
|
|
$title_before = '<h3>';
|
|
$title_after = '</h3>';
|
|
|
|
// ===== 全站 / 首页挂载位(对齐 Zibll 首页骨架) =====
|
|
register_sidebar([
|
|
'id' => 'all_top_fluid',
|
|
'name' => __('全站 - 顶部全宽', 'aksrt'),
|
|
'description' => __('显示在所有页面内容区上方的全宽挂载位。', 'aksrt'),
|
|
'before_widget' => $fluid_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
register_sidebar([
|
|
'id' => 'all_bottom_fluid',
|
|
'name' => __('全站 - 底部全宽', 'aksrt'),
|
|
'description' => __('显示在所有页面页脚上方的全宽挂载位。', 'aksrt'),
|
|
'before_widget' => $fluid_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
register_sidebar([
|
|
'id' => 'all_sidebar_top',
|
|
'name' => __('全站 - 侧栏顶部', 'aksrt'),
|
|
'description' => __('显示在全站侧栏顶部。', 'aksrt'),
|
|
'before_widget' => $card_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
register_sidebar([
|
|
'id' => 'all_sidebar_bottom',
|
|
'name' => __('全站 - 侧栏底部', 'aksrt'),
|
|
'description' => __('显示在全站侧栏底部。', 'aksrt'),
|
|
'before_widget' => $card_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
register_sidebar([
|
|
'id' => 'all_footer',
|
|
'name' => __('全站页脚小工具', 'aksrt'),
|
|
'description' => __('显示在页脚内部的统一小工具区域。', 'aksrt'),
|
|
'before_widget' => $card_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
register_sidebar([
|
|
'id' => 'mobile_nav_fluid',
|
|
'name' => __('移动端菜单底部', 'aksrt'),
|
|
'description' => __('显示在移动端抽屉菜单底部。', 'aksrt'),
|
|
'before_widget' => $card_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
register_sidebar([
|
|
'id' => 'home_top_fluid',
|
|
'name' => __('首页 - 顶部全宽', 'aksrt'),
|
|
'description' => __('显示在首页主内容上方的全宽区域。', 'aksrt'),
|
|
'before_widget' => $fluid_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
register_sidebar([
|
|
'id' => 'home_top_content',
|
|
'name' => __('首页 - 内容上方', 'aksrt'),
|
|
'description' => __('显示在首页主内容区顶部。', 'aksrt'),
|
|
'before_widget' => $card_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
register_sidebar([
|
|
'id' => 'home_bottom_content',
|
|
'name' => __('首页 - 内容下方', 'aksrt'),
|
|
'description' => __('显示在首页主内容区底部。', 'aksrt'),
|
|
'before_widget' => $card_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
register_sidebar([
|
|
'id' => 'home_bottom_fluid',
|
|
'name' => __('首页 - 底部全宽', 'aksrt'),
|
|
'description' => __('显示在首页页脚上方的全宽区域。', 'aksrt'),
|
|
'before_widget' => $fluid_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
register_sidebar([
|
|
'id' => 'home_sidebar',
|
|
'name' => __('首页侧栏', 'aksrt'),
|
|
'description' => __('显示在首页右侧栏。', 'aksrt'),
|
|
'before_widget' => $card_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
// 新前端使用的侧边栏 (sidebar.php)
|
|
register_sidebar([
|
|
'id' => 'sidebar-blog',
|
|
'name' => __('博客侧边栏', 'aksrt'),
|
|
'description' => __('显示在首页、归档等列表页右侧(新前端)。', 'aksrt'),
|
|
'before_widget' => $card_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
// 文章详情页侧栏
|
|
register_sidebar([
|
|
'id' => 'sidebar-article',
|
|
'name' => __('文章侧边栏', 'aksrt'),
|
|
'description' => __('显示在文章详情页右侧。', 'aksrt'),
|
|
'before_widget' => $card_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
// ===== 文章页 Widget 区域(模板zibll 多位置) =====
|
|
register_sidebar([
|
|
'id' => 'single_top_fluid',
|
|
'name' => __('文章页 · 顶部全宽', 'aksrt'),
|
|
'description' => __('文章页顶部全宽区域(在封面/面包屑之上)。', 'aksrt'),
|
|
'before_widget' => $fluid_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
register_sidebar([
|
|
'id' => 'single_top_content',
|
|
'name' => __('文章页 · 内容上方', 'aksrt'),
|
|
'description' => __('文章主体卡片上方(在内容列内)。', 'aksrt'),
|
|
'before_widget' => $card_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
register_sidebar([
|
|
'id' => 'single_bottom_content',
|
|
'name' => __('文章页 · 内容下方', 'aksrt'),
|
|
'description' => __('评论区下方(在内容列内)。', 'aksrt'),
|
|
'before_widget' => $card_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
register_sidebar([
|
|
'id' => 'single_bottom_fluid',
|
|
'name' => __('文章页 · 底部全宽', 'aksrt'),
|
|
'description' => __('文章页底部全宽区域(在页脚之上)。', 'aksrt'),
|
|
'before_widget' => $fluid_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
register_sidebar([
|
|
'id' => 'sidebar-footer-1',
|
|
'name' => __('页脚栏 1', 'aksrt'),
|
|
'description' => '',
|
|
'before_widget' => '<div class="footer-widget %2$s">',
|
|
'after_widget' => '</div>',
|
|
'before_title' => '<h4 class="footer-widget-title">',
|
|
'after_title' => '</h4>',
|
|
]);
|
|
|
|
register_sidebar([
|
|
'id' => 'sidebar-footer-2',
|
|
'name' => __('页脚栏 2', 'aksrt'),
|
|
'description' => '',
|
|
'before_widget' => '<div class="footer-widget %2$s">',
|
|
'after_widget' => '</div>',
|
|
'before_title' => '<h4 class="footer-widget-title">',
|
|
'after_title' => '</h4>',
|
|
]);
|
|
|
|
// ===== 分类页 Widget 区域 =====
|
|
register_sidebar([
|
|
'id' => 'cat_top_fluid',
|
|
'name' => __('分类页 · 顶部全宽', 'aksrt'),
|
|
'description' => __('分类归档页顶部全宽区域。', 'aksrt'),
|
|
'before_widget' => $fluid_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
register_sidebar([
|
|
'id' => 'cat_top_content',
|
|
'name' => __('分类页 · 内容上方', 'aksrt'),
|
|
'description' => __('分类归档页内容区上方。', 'aksrt'),
|
|
'before_widget' => $card_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
register_sidebar([
|
|
'id' => 'cat_bottom_content',
|
|
'name' => __('分类页 · 内容下方', 'aksrt'),
|
|
'description' => __('分类归档页内容区下方。', 'aksrt'),
|
|
'before_widget' => $card_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
register_sidebar([
|
|
'id' => 'cat_bottom_fluid',
|
|
'name' => __('分类页 · 底部全宽', 'aksrt'),
|
|
'description' => __('分类归档页底部全宽区域。', 'aksrt'),
|
|
'before_widget' => $fluid_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
register_sidebar([
|
|
'id' => 'cat_sidebar',
|
|
'name' => __('分类页 · 侧栏', 'aksrt'),
|
|
'description' => __('分类归档页侧栏区域。', 'aksrt'),
|
|
'before_widget' => $card_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
// ===== 标签页 Widget 区域 =====
|
|
register_sidebar([
|
|
'id' => 'tag_top_fluid',
|
|
'name' => __('标签页 · 顶部全宽', 'aksrt'),
|
|
'description' => __('标签归档页顶部全宽区域。', 'aksrt'),
|
|
'before_widget' => $fluid_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
register_sidebar([
|
|
'id' => 'tag_top_content',
|
|
'name' => __('标签页 · 内容上方', 'aksrt'),
|
|
'description' => __('标签归档页内容区上方。', 'aksrt'),
|
|
'before_widget' => $card_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
register_sidebar([
|
|
'id' => 'tag_bottom_content',
|
|
'name' => __('标签页 · 内容下方', 'aksrt'),
|
|
'description' => __('标签归档页内容区下方。', 'aksrt'),
|
|
'before_widget' => $card_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
register_sidebar([
|
|
'id' => 'tag_bottom_fluid',
|
|
'name' => __('标签页 · 底部全宽', 'aksrt'),
|
|
'description' => __('标签归档页底部全宽区域。', 'aksrt'),
|
|
'before_widget' => $fluid_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
register_sidebar([
|
|
'id' => 'tag_sidebar',
|
|
'name' => __('标签页 · 侧栏', 'aksrt'),
|
|
'description' => __('标签归档页侧栏区域。', 'aksrt'),
|
|
'before_widget' => $card_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
// ===== 搜索页 Widget 区域 =====
|
|
register_sidebar([
|
|
'id' => 'search_top_fluid',
|
|
'name' => __('搜索页 · 顶部全宽', 'aksrt'),
|
|
'description' => __('搜索结果页顶部全宽区域。', 'aksrt'),
|
|
'before_widget' => $fluid_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
register_sidebar([
|
|
'id' => 'search_top_content',
|
|
'name' => __('搜索页 · 内容上方', 'aksrt'),
|
|
'description' => __('搜索结果页内容区上方。', 'aksrt'),
|
|
'before_widget' => $card_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
register_sidebar([
|
|
'id' => 'search_bottom_content',
|
|
'name' => __('搜索页 · 内容下方', 'aksrt'),
|
|
'description' => __('搜索结果页内容区下方。', 'aksrt'),
|
|
'before_widget' => $card_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
register_sidebar([
|
|
'id' => 'search_bottom_fluid',
|
|
'name' => __('搜索页 · 底部全宽', 'aksrt'),
|
|
'description' => __('搜索结果页底部全宽区域。', 'aksrt'),
|
|
'before_widget' => $fluid_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
register_sidebar([
|
|
'id' => 'search_sidebar',
|
|
'name' => __('搜索页 · 侧栏', 'aksrt'),
|
|
'description' => __('搜索结果页侧栏区域。', 'aksrt'),
|
|
'before_widget' => $card_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
register_sidebar([
|
|
'id' => 'archive_bottom_fluid',
|
|
'name' => __('归档页 · 底部全宽', 'aksrt'),
|
|
'description' => __('分类/标签/归档页底部全宽区域。', 'aksrt'),
|
|
'before_widget' => $fluid_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
register_sidebar([
|
|
'id' => 'author-sidebar',
|
|
'name' => __('作者页 · 侧栏', 'aksrt'),
|
|
'description' => __('作者归档页侧栏区域。', 'aksrt'),
|
|
'before_widget' => $card_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
|
|
// ── Forum / BBS widget areas (zibll bbs_* parity lite) ──
|
|
$forum_widgets = [
|
|
'bbs_home_sidebar' => [__('论坛首页 · 侧栏', 'aksrt'), __('论坛首页侧栏区域。', 'aksrt')],
|
|
'bbs_home_top_fluid' => [__('论坛首页 · 顶部全宽', 'aksrt'), __('论坛首页顶部全宽。', 'aksrt')],
|
|
'bbs_plate_sidebar' => [__('论坛版块 · 侧栏', 'aksrt'), __('版块页侧栏。', 'aksrt')],
|
|
'bbs_plate_top_fluid' => [__('论坛版块 · 顶部全宽', 'aksrt'), __('版块页顶部全宽。', 'aksrt')],
|
|
'bbs_posts_sidebar' => [__('论坛帖子 · 侧栏', 'aksrt'), __('帖子页侧栏挂件区。', 'aksrt')],
|
|
'bbs_posts_top_fluid' => [__('论坛帖子 · 顶部全宽', 'aksrt'), __('帖子页顶部全宽。', 'aksrt')],
|
|
'bbs_new_posts_sidebar_top' => [__('论坛发帖 · 侧栏顶部', 'aksrt'), __('发帖页侧栏顶部。', 'aksrt')],
|
|
'bbs_new_posts_sidebar_bottom' => [__('论坛发帖 · 侧栏底部', 'aksrt'), __('发帖页侧栏底部。', 'aksrt')],
|
|
];
|
|
foreach ($forum_widgets as $sid => $meta) {
|
|
register_sidebar([
|
|
'id' => $sid,
|
|
'name' => $meta[0],
|
|
'description' => $meta[1],
|
|
'before_widget' => $card_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
}
|
|
|
|
// ── Shop widget areas (§6.9) ──
|
|
$shop_widgets = [
|
|
'shop_home_top_fluid' => ['商城首页 · 顶部通栏', '商城首页顶部全宽区域。'],
|
|
'shop_home_sidebar' => ['商城首页 · 侧栏', '商城首页侧栏区域。'],
|
|
'shop_product_top_fluid' => ['商品详情页 · 顶部通栏', '商品详情页顶部全宽区域。'],
|
|
'shop_product_sidebar' => ['商品详情页 · 侧栏', '商品详情页侧栏区域(PC 端)。'],
|
|
'shop_product_bottom_fluid' => ['商品详情页 · 底部通栏', '商品详情页底部全宽区域。'],
|
|
'shop_cart_top_fluid' => ['购物车页 · 顶部通栏', '购物车页顶部全宽区域。'],
|
|
'shop_cart_bottom_fluid' => ['购物车页 · 底部通栏', '购物车页底部全宽区域。'],
|
|
'shop_order_top_fluid' => ['订单页 · 顶部通栏', '订单中心顶部全宽。'],
|
|
'shop_order_bottom_fluid' => ['订单页 · 底部通栏', '订单中心底部全宽。'],
|
|
];
|
|
foreach ($shop_widgets as $sid => $meta) {
|
|
register_sidebar([
|
|
'id' => $sid,
|
|
'name' => $meta[0],
|
|
'description' => $meta[1],
|
|
'before_widget' => $card_wrapper_before,
|
|
'after_widget' => '</div>',
|
|
'before_title' => $title_before,
|
|
'after_title' => $title_after,
|
|
]);
|
|
}
|
|
}
|
|
}
|