0) { $page_template = get_post_meta($page_id, '_wp_page_template', true); $resolved_template = aksrt_resolve_page_template_file( is_string($page_template) ? $page_template : '', (string) get_post_field('post_name', $page_id) ); if ($resolved_template !== '') { $resolved_path = aksrt_locate_template_file($resolved_template); if ($resolved_path) { return $resolved_path; } } } } return $template; }, 100); // ============================================================ // 四、自动维护 + flush // ============================================================ add_action('init', function () { global $_aksrt_special_templates; // 后台/AJAX:检查并创建缺失页面 $pages_bootstrapped = get_option('aksrt_template_pages_bootstrapped'); $requested_template_key = (!is_admin() && !wp_doing_ajax()) ? aksrt_get_requested_template_key() : ''; if (is_admin() || wp_doing_ajax() || $pages_bootstrapped !== AKSRT_VERSION) { foreach ($_aksrt_special_templates as $key => $cfg) { if ($key === 'profile') { continue; } aksrt_ensure_template_page($key); } if ($pages_bootstrapped !== AKSRT_VERSION) { update_option('aksrt_template_pages_bootstrapped', AKSRT_VERSION); } } elseif ($requested_template_key !== '' && $requested_template_key !== 'profile') { aksrt_ensure_template_page($requested_template_key); } // 统一 flush 检查 $rewrite_version = AKSRT_VERSION . ':sign-profile-routing-v1'; $flushed = get_option('aksrt_user_rules_flushed'); if ($flushed !== $rewrite_version) { flush_rewrite_rules(false); update_option('aksrt_user_rules_flushed', $rewrite_version); } }); // 页面变更时清缓存 add_action('save_post', function ($pid) { if (get_post_type($pid) === 'page') aksrt_clear_template_page_cache(); }); add_action('delete_post', function ($pid) { if (get_post_type($pid) === 'page') aksrt_clear_template_page_cache(); }); // ============================================================ // 六、作者链接改写 // ============================================================ add_filter('author_link', function ($link, $author_id) { $user = get_userdata($author_id); $slug = $user ? $user->user_nicename : 'user-' . $author_id; return home_url('/user/' . trailingslashit($slug)); }, 10, 2); add_action('template_redirect', function () { if (!is_author()) return; $author_id = get_queried_object_id(); if ($author_id) { $user = get_userdata($author_id); $slug = $user ? $user->user_nicename : 'user-' . $author_id; wp_safe_redirect(home_url('/user/' . trailingslashit($slug)), 301); exit; } }); // ============================================================ // AJAX: 保存用户个人资料(显示名称、简介、联系方式)