__('AKSRT - 登录/注册', 'aksrt'), 'templates/pages/page-profile.php' => __('AKSRT - 个人中心', 'aksrt'), 'templates/pages/page-user-home.php' => __('AKSRT - 用户主页', 'aksrt'), 'templates/pages/page-archives.php' => __('AKSRT - 文章归档', 'aksrt'), 'templates/pages/page-categories.php' => __('AKSRT - 分类汇总', 'aksrt'), 'templates/pages/page-newposts.php' => __('AKSRT - 最新文章', 'aksrt'), 'templates/pages/page-posts-navs.php' => __('AKSRT - 文章导航', 'aksrt'), 'templates/pages/page-friends.php' => __('AKSRT - 友情链接', 'aksrt'), 'templates/pages/page-orders.php' => __('AKSRT - 订单中心', 'aksrt'), 'templates/pages/page-revenue.php' => __('AKSRT - 收益中心', 'aksrt'), 'templates/pages/page-cart.php' => __('AKSRT - 购物车', 'aksrt'), 'templates/pages/page-product.php' => __('AKSRT - 商品详情', 'aksrt'), 'templates/pages/page-product-edit.php' => __('AKSRT - 商品编辑', 'aksrt'), 'templates/pages/page-forums.php' => __('AKSRT - 论坛', 'aksrt'), 'templates/forum/forum-compose.php' => __('AKSRT - 发帖', 'aksrt'), ]; } /** * Register selectable page templates in wp-admin. */ public function register_page_templates(array $templates): array { foreach ($this->page_template_map() as $template_file => $label) { $templates[$template_file] = $label; } return $templates; } /** * Resolve theme page templates through the shared page-template router. */ public function load_page_template(string $template): string { global $post; if (!$post) { return $template; } $page_template_meta = get_post_meta($post->ID, '_wp_page_template', true); $resolved_template = function_exists('aksrt_resolve_page_template_file') ? aksrt_resolve_page_template_file( is_string($page_template_meta) ? $page_template_meta : '', (string) $post->post_name ) : ''; if ($resolved_template !== '' && function_exists('aksrt_locate_template_file')) { $resolved_path = aksrt_locate_template_file($resolved_template); if ($resolved_path) { return $resolved_path; } } return $template; } public function template_hierarchy(array $templates): array { return $templates; } /** * Load dedicated product taxonomy templates. */ public function load_taxonomy_template(string $template): string { if (is_tax('aksrt_product_cat')) { $cat_template = AKSRT_DIR . '/templates/shop/product-cat.php'; if (file_exists($cat_template)) { return $cat_template; } } if (is_tax('aksrt_product_tag')) { $tag_template = AKSRT_DIR . '/templates/shop/product-tag.php'; if (file_exists($tag_template)) { return $tag_template; } } return $template; } public function render_archive_shortcode(array $attrs = [], string $content = ''): string { $template = AKSRT_DIR . '/templates/shortcodes/archive.php'; if (!file_exists($template)) { return ''; } ob_start(); include $template; return (string) ob_get_clean(); } public function render_profile_shortcode(array $attrs = [], string $content = ''): string { $template = AKSRT_DIR . '/templates/shortcodes/profile.php'; if (!file_exists($template)) { return ''; } ob_start(); include $template; return (string) ob_get_clean(); } } return AKSRT_Templates::get_instance();