feat(admin): expose shop/forum CPTs on native WP sidebar (Phase 0–1)
Align admin ops entry with zibll: product/plate/topic menus and taxonomies show in the WordPress sidebar when shop_s/bbs_s are enabled, gated by AKSRT_Settings. Add IA map + gap matrix docs for the full native-ops migration path. SPA ops pages remain until Phase 2–3 native pages ship.
This commit is contained in:
1 parent
87004ecfe0
commit
50ca5a6593
6 files changed
+388
-60
No files matched your search
@@ -121,10 +121,20 @@ class AKSRT_Setup {
|
||||
$product_slug = sanitize_key((string) ($shop_rewrite['product_slug'] ?? 'product'));
|
||||
$suffix_html = !empty($shop_rewrite['suffix_html']);
|
||||
|
||||
// 商品 CPT
|
||||
// Shop admin visibility: align with zibll native sidebar when shop is enabled.
|
||||
$shop_enabled = true;
|
||||
if (class_exists('AKSRT_Settings')) {
|
||||
$shop_settings = AKSRT_Settings::get_shop_settings();
|
||||
$shop_enabled = !empty($shop_settings['enabled']);
|
||||
}
|
||||
// Always register UI in admin so settings/tools remain reachable; hide menu when disabled.
|
||||
$shop_show_ui = true;
|
||||
$shop_show_menu = is_admin() ? $shop_enabled : false;
|
||||
|
||||
// 商品 CPT — native WP sidebar (zibll: shop_product @ pos 35)
|
||||
register_post_type('aksrt_product', [
|
||||
'labels' => [
|
||||
'name' => __('商品', 'aksrt'),
|
||||
'name' => __('商城', 'aksrt'),
|
||||
'singular_name' => __('商品', 'aksrt'),
|
||||
'add_new' => __('新增商品', 'aksrt'),
|
||||
'add_new_item' => __('新增商品', 'aksrt'),
|
||||
@@ -134,15 +144,18 @@ class AKSRT_Setup {
|
||||
'search_items' => __('搜索商品', 'aksrt'),
|
||||
'not_found' => __('未找到商品', 'aksrt'),
|
||||
'not_found_in_trash' => __('回收站中无商品', 'aksrt'),
|
||||
'menu_name' => __('商品', 'aksrt'),
|
||||
'all_items' => __('所有商品', 'aksrt'),
|
||||
'menu_name' => __('商城', 'aksrt'),
|
||||
],
|
||||
'public' => true,
|
||||
'publicly_queryable' => true,
|
||||
'show_ui' => true,
|
||||
'show_in_menu' => false,
|
||||
'show_ui' => $shop_show_ui,
|
||||
'show_in_menu' => $shop_show_menu,
|
||||
'show_in_rest' => true,
|
||||
'has_archive' => true,
|
||||
'hierarchical' => false,
|
||||
'menu_position' => 35,
|
||||
'menu_icon' => 'dashicons-store',
|
||||
'supports' => ['title', 'editor', 'excerpt', 'thumbnail', 'author', 'revisions'],
|
||||
'rewrite' => ['slug' => $product_slug, 'with_front' => false],
|
||||
'capability_type' => 'post',
|
||||
@@ -163,9 +176,10 @@ class AKSRT_Setup {
|
||||
],
|
||||
'public' => true,
|
||||
'hierarchical' => true,
|
||||
'show_ui' => false,
|
||||
'show_ui' => $shop_show_ui,
|
||||
'show_in_menu' => $shop_show_menu,
|
||||
'show_in_rest' => true,
|
||||
'show_admin_column' => false,
|
||||
'show_admin_column' => true,
|
||||
'rewrite' => ['slug' => 'product-cat', 'with_front' => false],
|
||||
]);
|
||||
|
||||
@@ -178,15 +192,15 @@ class AKSRT_Setup {
|
||||
'all_items' => __('所有商品标签', 'aksrt'),
|
||||
'edit_item' => __('编辑标签', 'aksrt'),
|
||||
'add_new_item' => __('新增标签', 'aksrt'),
|
||||
'menu_name' => __('商品标签', 'aksrt'),
|
||||
'menu_name' => __('特色标签', 'aksrt'),
|
||||
],
|
||||
'public' => true,
|
||||
'hierarchical' => false,
|
||||
'show_ui' => false,
|
||||
'show_ui' => $shop_show_ui,
|
||||
'show_in_menu' => $shop_show_menu,
|
||||
'show_in_rest' => true,
|
||||
'show_admin_column' => false,
|
||||
'rewrite' => ['slug' => 'product-tag', 'with_front' => false,
|
||||
],
|
||||
'show_admin_column' => true,
|
||||
'rewrite' => ['slug' => 'product-tag', 'with_front' => false],
|
||||
]);
|
||||
|
||||
// 项目展示
|
||||
|
||||
@@ -45,6 +45,14 @@ class AKSRT_Shop_Term_Meta {
|
||||
return;
|
||||
}
|
||||
|
||||
$shop_enabled = true;
|
||||
if (class_exists('AKSRT_Settings')) {
|
||||
$shop_settings = AKSRT_Settings::get_shop_settings();
|
||||
$shop_enabled = !empty($shop_settings['enabled']);
|
||||
}
|
||||
$shop_show_ui = true;
|
||||
$shop_show_menu = is_admin() ? $shop_enabled : false;
|
||||
|
||||
register_taxonomy('shop_discount', 'aksrt_product', [
|
||||
'labels' => [
|
||||
'name' => __('优惠活动', 'aksrt'),
|
||||
@@ -57,9 +65,10 @@ class AKSRT_Shop_Term_Meta {
|
||||
],
|
||||
'public' => true,
|
||||
'hierarchical' => false,
|
||||
'show_ui' => false,
|
||||
'show_ui' => $shop_show_ui,
|
||||
'show_in_menu' => $shop_show_menu,
|
||||
'show_in_rest' => true,
|
||||
'show_admin_column' => false,
|
||||
'show_admin_column' => true,
|
||||
'rewrite' => ['slug' => 'shop-discount', 'with_front' => false],
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ trait AKSRT_Setup_Part_2 {
|
||||
|
||||
|
||||
/**
|
||||
* 隐藏默认WordPress菜单项目
|
||||
* 隐藏默认WordPress菜单项目 + zibll 风格运营菜单分隔线
|
||||
*/
|
||||
public function hide_default_menus(): void {
|
||||
// 移除评论默认菜单(已移除该操作以恢复 Comments 菜单)
|
||||
@@ -13,10 +13,22 @@ trait AKSRT_Setup_Part_2 {
|
||||
|
||||
// 移除链接管理(已废弃但仍可能存在)
|
||||
//remove_menu_page('link-manager.php');
|
||||
|
||||
|
||||
// 移除仪表盘中的不必要组件
|
||||
remove_meta_box('dashboard_primary', 'dashboard', 'normal');
|
||||
remove_meta_box('dashboard_quick_press', 'dashboard', 'side');
|
||||
|
||||
// Separators around shop (35) and forum (40) — match zibll admin_menu_separator.
|
||||
global $menu;
|
||||
if (!is_array($menu)) {
|
||||
return;
|
||||
}
|
||||
if (!isset($menu[34])) {
|
||||
$menu[34] = ['', 'read', 'separator-aksrt-shop', '', 'wp-menu-separator'];
|
||||
}
|
||||
if (!isset($menu[39])) {
|
||||
$menu[39] = ['', 'read', 'separator-aksrt-forum', '', 'wp-menu-separator'];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in new issue
Block a user