932 lines
39 KiB
PHP
932 lines
39 KiB
PHP
<?php
|
||
/**
|
||
* @package AKSRT
|
||
*/
|
||
|
||
namespace AKSRT\Core;
|
||
|
||
defined('ABSPATH') || exit;
|
||
|
||
trait ScriptsPart1b {
|
||
|
||
public function enqueue_public(): void {
|
||
$base_uri = get_template_directory_uri();
|
||
$version = AKSRT_VERSION;
|
||
|
||
wp_enqueue_script('jquery');
|
||
|
||
wp_enqueue_script(
|
||
'aksrt-passive-events',
|
||
$base_uri . '/assets/js/passive-events.js',
|
||
[],
|
||
$version,
|
||
false
|
||
);
|
||
|
||
wp_enqueue_style(
|
||
'bootstrap5',
|
||
'https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css',
|
||
[],
|
||
'5.3.3'
|
||
);
|
||
|
||
wp_enqueue_script(
|
||
'bootstrap5',
|
||
'https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js',
|
||
['jquery'],
|
||
'5.3.3',
|
||
true
|
||
);
|
||
|
||
wp_enqueue_style('aksrt-style', get_stylesheet_uri(), ['bootstrap5'], $version);
|
||
|
||
$core_bundle = get_template_directory() . '/assets/css/build/core.min.css';
|
||
if (file_exists($core_bundle)) {
|
||
wp_enqueue_style(
|
||
'aksrt-core-bundle',
|
||
$base_uri . '/assets/css/build/core.min.css',
|
||
['aksrt-style'],
|
||
filemtime($core_bundle) ?: $version
|
||
);
|
||
$core_dep = 'aksrt-core-bundle';
|
||
} else {
|
||
$tokens_path = get_template_directory() . '/assets/css/core/tokens.css';
|
||
wp_enqueue_style(
|
||
'aksrt-tokens',
|
||
$base_uri . '/assets/css/core/tokens.css',
|
||
['aksrt-style'],
|
||
file_exists($tokens_path) ? (string) filemtime($tokens_path) : $version
|
||
);
|
||
foreach (['reset', 'typography', 'buttons', 'forms', 'alerts'] as $slug) {
|
||
$core_path = get_template_directory() . '/assets/css/core/' . $slug . '.css';
|
||
wp_enqueue_style(
|
||
'aksrt-core-' . $slug,
|
||
$base_uri . '/assets/css/core/' . $slug . '.css',
|
||
['aksrt-tokens'],
|
||
file_exists($core_path) ? (string) filemtime($core_path) : $version
|
||
);
|
||
}
|
||
$core_dep = 'aksrt-tokens';
|
||
}
|
||
|
||
$ext_css_files = ['animations', 'components-ext', 'color-utilities'];
|
||
foreach ($ext_css_files as $slug) {
|
||
$ext_path = get_template_directory() . '/assets/css/core/' . $slug . '.css';
|
||
if (file_exists($ext_path)) {
|
||
wp_enqueue_style(
|
||
'aksrt-ext-' . $slug,
|
||
$base_uri . '/assets/css/core/' . $slug . '.css',
|
||
[$core_dep],
|
||
filemtime($ext_path) ?: $version
|
||
);
|
||
}
|
||
}
|
||
|
||
$deps = [$core_dep];
|
||
$enqueue_module = function ($slug) use ($base_uri, $version, $deps) {
|
||
$path = get_template_directory() . '/assets/css/frontend/' . $slug . '.css';
|
||
wp_enqueue_style(
|
||
'aksrt-' . $slug,
|
||
$base_uri . '/assets/css/frontend/' . $slug . '.css',
|
||
$deps,
|
||
(file_exists($path) ? (string) filemtime($path) : $version)
|
||
);
|
||
};
|
||
|
||
// 4a. 全站必加 — 优先使用合并文件
|
||
$frontend_bundle = get_template_directory() . '/assets/css/build/frontend-base.min.css';
|
||
if (file_exists($frontend_bundle)) {
|
||
wp_enqueue_style(
|
||
'aksrt-frontend-bundle',
|
||
$base_uri . '/assets/css/build/frontend-base.min.css',
|
||
[$core_dep],
|
||
filemtime($frontend_bundle) ?: $version
|
||
);
|
||
|
||
// Keep shell-level source overrides live during the refactor.
|
||
foreach (['base', 'nav', 'footer'] as $shell_slug) {
|
||
$shell_css_path = get_template_directory() . '/assets/css/frontend/' . $shell_slug . '.css';
|
||
if (file_exists($shell_css_path)) {
|
||
wp_enqueue_style(
|
||
'aksrt-shell-' . $shell_slug,
|
||
$base_uri . '/assets/css/frontend/' . $shell_slug . '.css',
|
||
['aksrt-frontend-bundle'],
|
||
filemtime($shell_css_path) ?: $version
|
||
);
|
||
}
|
||
}
|
||
} else {
|
||
$enqueue_module('base');
|
||
$enqueue_module('zibll-compat-vars');
|
||
$enqueue_module('card-primitives');
|
||
$enqueue_module('overlay-primitives');
|
||
$enqueue_module('nav');
|
||
$enqueue_module('layout');
|
||
$enqueue_module('footer');
|
||
$enqueue_module('floating-buttons');
|
||
$enqueue_module('theme-background');
|
||
$enqueue_module('menu-decorations');
|
||
$enqueue_module('enhancements');
|
||
}
|
||
|
||
// 4a-b. 全局补充样式(骨架屏、空状态、分页、加载指示器)
|
||
foreach (['skeleton', 'empty-state', 'pagination', 'ajax-spinner', 'remote-modal'] as $slug) {
|
||
$css_path = get_template_directory() . '/assets/css/frontend/' . $slug . '.css';
|
||
if (file_exists($css_path)) {
|
||
wp_enqueue_style(
|
||
'aksrt-' . $slug,
|
||
$base_uri . '/assets/css/frontend/' . $slug . '.css',
|
||
[$core_dep],
|
||
filemtime($css_path) ?: $version
|
||
);
|
||
}
|
||
}
|
||
|
||
// Header user-box density (check-in / wallet / signout modal)
|
||
$hub_css = get_template_directory() . '/assets/css/frontend/nav/header-userbox.css';
|
||
if (file_exists($hub_css)) {
|
||
wp_enqueue_style(
|
||
'aksrt-header-userbox',
|
||
$base_uri . '/assets/css/frontend/nav/header-userbox.css',
|
||
[$core_dep],
|
||
(string) filemtime($hub_css)
|
||
);
|
||
}
|
||
$hub_js = get_template_directory() . '/assets/js/header-userbox.js';
|
||
if (file_exists($hub_js)) {
|
||
wp_enqueue_script(
|
||
'aksrt-header-userbox',
|
||
$base_uri . '/assets/js/header-userbox.js',
|
||
[],
|
||
(string) filemtime($hub_js),
|
||
true
|
||
);
|
||
}
|
||
|
||
// Header multi-function publish/VIP cluster
|
||
$hmb_css = get_template_directory() . '/assets/css/frontend/nav/header-menu-buttons.css';
|
||
if (file_exists($hmb_css)) {
|
||
wp_enqueue_style(
|
||
'aksrt-header-menu-buttons',
|
||
$base_uri . '/assets/css/frontend/nav/header-menu-buttons.css',
|
||
[$core_dep],
|
||
(string) filemtime($hmb_css)
|
||
);
|
||
}
|
||
|
||
// Final nav alignment overrides AFTER header-menu-buttons (zibll text/icon baseline).
|
||
// Re-enqueue shell nav.css last so inline critical rules win the cascade.
|
||
$nav_css = get_template_directory() . '/assets/css/frontend/nav.css';
|
||
if (file_exists($nav_css)) {
|
||
wp_enqueue_style(
|
||
'aksrt-nav-align',
|
||
$base_uri . '/assets/css/frontend/nav.css',
|
||
['aksrt-header-menu-buttons'],
|
||
(string) filemtime($nav_css)
|
||
);
|
||
}
|
||
|
||
|
||
$inline_search_js = get_template_directory() . '/assets/js/header-inline-search.js';
|
||
if (file_exists($inline_search_js)) {
|
||
wp_enqueue_script(
|
||
'aksrt-header-inline-search',
|
||
$base_uri . '/assets/js/header-inline-search.js',
|
||
[],
|
||
(string) filemtime($inline_search_js),
|
||
true
|
||
);
|
||
}
|
||
|
||
$hmb_js = get_template_directory() . '/assets/js/header-newadd.js';
|
||
if (file_exists($hmb_js)) {
|
||
wp_enqueue_script(
|
||
'aksrt-header-newadd',
|
||
$base_uri . '/assets/js/header-newadd.js',
|
||
[],
|
||
(string) filemtime($hmb_js),
|
||
true
|
||
);
|
||
}
|
||
|
||
// VIP modal (zibll .pay-vip)
|
||
$vip_on = class_exists('\AKSRT\Settings\Settings')
|
||
&& !empty(\AKSRT\Settings\Settings::get_payment_vip_settings()['enabled']);
|
||
if ($vip_on) {
|
||
$vip_css = get_template_directory() . '/assets/css/frontend/vip-modal.css';
|
||
if (file_exists($vip_css)) {
|
||
wp_enqueue_style(
|
||
'aksrt-vip-modal',
|
||
$base_uri . '/assets/css/frontend/vip-modal.css',
|
||
[$core_dep],
|
||
(string) filemtime($vip_css)
|
||
);
|
||
}
|
||
$vip_js = get_template_directory() . '/assets/js/pay-vip.js';
|
||
if (file_exists($vip_js)) {
|
||
wp_enqueue_script(
|
||
'aksrt-pay-vip',
|
||
$base_uri . '/assets/js/pay-vip.js',
|
||
['aksrt-script'],
|
||
(string) filemtime($vip_js),
|
||
true
|
||
);
|
||
}
|
||
}
|
||
|
||
|
||
// Print stylesheet — only load on singular pages
|
||
if (is_singular()) {
|
||
wp_enqueue_style(
|
||
'aksrt-print',
|
||
$base_uri . '/assets/css/frontend/print.css',
|
||
[],
|
||
$version,
|
||
'print'
|
||
);
|
||
}
|
||
|
||
// 4b. 路由判定
|
||
$is_home_or_archive = is_home() || is_front_page() || is_archive() || is_search();
|
||
// 资源单页(post + _aksrt_is_resource)
|
||
$is_single_resource = (function_exists('aksrt_is_resource_post') && is_singular() && aksrt_is_resource_post(get_queried_object_id()));
|
||
// 普通博客 single(排除资源型 post)
|
||
$is_single_post = is_singular('post') && !$is_single_resource;
|
||
// 付费下载/付费墙:任意 singular 需收银台/下载脚本
|
||
$is_paid_content_single = false;
|
||
if (is_singular()) {
|
||
$qid = (int) get_queried_object_id();
|
||
if ($qid > 0) {
|
||
if (function_exists('aksrt_is_downloadable_content') && aksrt_is_downloadable_content($qid)) {
|
||
$is_paid_content_single = true;
|
||
} elseif (function_exists('aksrt_is_paid_post') && aksrt_is_paid_post($qid)) {
|
||
$is_paid_content_single = true;
|
||
} elseif (function_exists('aksrt_get_pay_meta')) {
|
||
$pm = aksrt_get_pay_meta($qid);
|
||
$pt = (string) ($pm['pay_type'] ?? 'no');
|
||
$is_paid_content_single = ($pt !== '' && $pt !== 'no');
|
||
}
|
||
}
|
||
}
|
||
// 独立下载页模板
|
||
$is_download_file_page = is_page_template('templates/pages/page-download-file.php');
|
||
// 资源虚拟列表 /resources/
|
||
$is_resource_archive = function_exists('aksrt_is_resource_archive') && aksrt_is_resource_archive();
|
||
// /user/{nicename}/ 自定义重写路由(class-aksrt-user.php 注册)
|
||
// 此路径下 is_page() / is_page_template() 均为 false,需手动识别以正确入队 CSS
|
||
$is_profile_route = (bool) get_query_var('user_nicename');
|
||
$is_user_center_route = (bool) get_query_var('aksrt_user_center');
|
||
$is_static_page = is_page() || is_singular('page') || $is_profile_route || $is_user_center_route;
|
||
$is_auth_route = (bool) get_query_var('aksrt_sign');
|
||
$is_auth_page = $is_auth_route
|
||
|| (function_exists('aksrt_is_auth_page_request') && aksrt_is_auth_page_request());
|
||
$is_profile_page = $is_profile_route
|
||
|| (function_exists('aksrt_is_user_home_page') && aksrt_is_user_home_page())
|
||
|| (function_exists('aksrt_is_user_center_page') && aksrt_is_user_center_page())
|
||
|| is_page_template('templates/pages/page-profile.php')
|
||
|| is_page_template('templates/pages/page-user-home.php');
|
||
$is_fixed_homepage = function_exists('aksrt_is_fixed_homepage_request') && aksrt_is_fixed_homepage_request();
|
||
|
||
// CMS 形态判定(可能在博客流页面也需要 grid-cms 卡片样式)
|
||
$is_cms_mode = function_exists('aksrt_is_cms_mode') ? aksrt_is_cms_mode() : false;
|
||
// 首页/归档/搜索:卡片 + 侧栏
|
||
if ($is_home_or_archive) {
|
||
$enqueue_module('post-card');
|
||
$enqueue_module('widgets');
|
||
$enqueue_module('sidebar');
|
||
$enqueue_module('breadcrumb');
|
||
}
|
||
|
||
// 顶部多功能组件:按 page-type 启用结果入队(对齐 zibll,不绑死首页)
|
||
if (function_exists('aksrt_header_slide_is_show') && aksrt_header_slide_is_show()) {
|
||
// flex/gutters used by icon cards (same helpers single-post loads via zibll-utilities)
|
||
$zu_path = get_template_directory() . '/assets/css/frontend/zibll-utilities.css';
|
||
if (file_exists($zu_path)) {
|
||
wp_enqueue_style(
|
||
'aksrt-zibll-utilities',
|
||
$base_uri . '/assets/css/frontend/zibll-utilities.css',
|
||
is_string($deps[0] ?? null) ? [$deps[0]] : (array) $deps,
|
||
filemtime($zu_path) ?: $version
|
||
);
|
||
}
|
||
$enqueue_module('header-components');
|
||
}
|
||
|
||
// 单篇文章:所有 single 相关样式
|
||
if ($is_single_post) {
|
||
// Prefer discrete enqueues over CSS @import (cache-bust + parallel load).
|
||
$single_parts = [
|
||
'zibll-utilities',
|
||
'single-post/shell',
|
||
'single-post/content',
|
||
'single-post/code-blocks',
|
||
'single-post/navigation',
|
||
'single-post/cover',
|
||
'single-post/author-actions',
|
||
'single-post/related-toc',
|
||
'single-post/hidden-content',
|
||
];
|
||
$single_dep = $deps[0] ?? $core_dep;
|
||
foreach ($single_parts as $part) {
|
||
$path = get_template_directory() . '/assets/css/frontend/' . $part . '.css';
|
||
if (!file_exists($path)) {
|
||
continue;
|
||
}
|
||
wp_enqueue_style(
|
||
'aksrt-' . str_replace('/', '-', $part),
|
||
$base_uri . '/assets/css/frontend/' . $part . '.css',
|
||
is_string($single_dep) ? [$single_dep] : (array) $deps,
|
||
filemtime($path) ?: $version
|
||
);
|
||
}
|
||
// Keep aggregator handle for any third-party deps that target it.
|
||
$enqueue_module('single-post');
|
||
$enqueue_module('post-card'); // 相关推荐使用 post-card 局部样式
|
||
// Comments pack (zibll 1:1 discrete files).
|
||
$comment_parts = ['comments/shell', 'comments/mobile-item'];
|
||
$comment_dep = $deps[0] ?? $core_dep;
|
||
foreach ($comment_parts as $part) {
|
||
$path = get_template_directory() . '/assets/css/frontend/' . $part . '.css';
|
||
if (!file_exists($path)) {
|
||
continue;
|
||
}
|
||
wp_enqueue_style(
|
||
'aksrt-' . str_replace('/', '-', $part),
|
||
$base_uri . '/assets/css/frontend/' . $part . '.css',
|
||
is_string($comment_dep) ? [$comment_dep] : (array) $deps,
|
||
filemtime($path) ?: $version
|
||
);
|
||
}
|
||
$enqueue_module('comments'); // aggregator handle for third-party deps
|
||
$enqueue_module('widgets');
|
||
$enqueue_module('sidebar');
|
||
$enqueue_module('breadcrumb');
|
||
}
|
||
|
||
// 静态页面 + 用户中心 + 友链等
|
||
if ($is_static_page) {
|
||
$enqueue_module('pages');
|
||
$enqueue_module('single-post'); // 复用 entry-content 排版
|
||
$enqueue_module('widgets'); // widget-card / widget-title
|
||
$enqueue_module('post-card'); // post-grid / post-card(用户中心文章列表)
|
||
$enqueue_module('breadcrumb');
|
||
// 启用评论的页面
|
||
if (comments_open() || get_comments_number()) {
|
||
$enqueue_module('comments');
|
||
}
|
||
}
|
||
|
||
// 用户中心 / 公开主页:路由专属 CSS
|
||
if ($is_profile_page) {
|
||
// 举报脚本(用户主页和个人中心均需要)
|
||
$report_js_path = get_template_directory() . '/assets/js/report.js';
|
||
if (file_exists($report_js_path)) {
|
||
wp_enqueue_script(
|
||
'aksrt-report',
|
||
$base_uri . '/assets/js/report.js',
|
||
[],
|
||
filemtime($report_js_path) ?: $version,
|
||
true
|
||
);
|
||
}
|
||
|
||
// 关注脚本
|
||
$follow_js_path = get_template_directory() . '/assets/js/follow.js';
|
||
if (file_exists($follow_js_path)) {
|
||
wp_enqueue_script(
|
||
'aksrt-follow',
|
||
$base_uri . '/assets/js/follow.js',
|
||
[],
|
||
filemtime($follow_js_path) ?: $version,
|
||
true
|
||
);
|
||
}
|
||
|
||
$author_js_path = get_template_directory() . '/assets/js/author.js';
|
||
if (file_exists($author_js_path)) {
|
||
wp_enqueue_script(
|
||
'aksrt-author',
|
||
$base_uri . '/assets/js/author.js',
|
||
['aksrt-script'],
|
||
(string) filemtime($author_js_path),
|
||
true
|
||
);
|
||
}
|
||
|
||
// 共享基础 profile 样式(兼容层)
|
||
$profile_css_path = get_template_directory() . '/assets/css/routes/profile.css';
|
||
wp_enqueue_style(
|
||
'aksrt-route-profile',
|
||
$base_uri . '/assets/css/routes/profile.css',
|
||
['aksrt-tokens'],
|
||
file_exists($profile_css_path) ? (string) filemtime($profile_css_path) : $version
|
||
);
|
||
|
||
// 本人中心 vs 公开主页拆分加载
|
||
$is_public_user_home = $is_profile_route
|
||
|| (function_exists('aksrt_is_user_home_page') && aksrt_is_user_home_page())
|
||
|| is_page_template('templates/pages/page-user-home.php');
|
||
if ($is_public_user_home) {
|
||
// /user/{nicename}/ 公开主页
|
||
$user_home_css_path = get_template_directory() . '/assets/css/routes/user-home.css';
|
||
wp_enqueue_style(
|
||
'aksrt-route-user-home',
|
||
$base_uri . '/assets/css/routes/user-home.css',
|
||
['aksrt-route-profile'],
|
||
file_exists($user_home_css_path) ? (string) filemtime($user_home_css_path) : $version
|
||
);
|
||
} else {
|
||
// 本人中心(page template)
|
||
$user_center_css_path = get_template_directory() . '/assets/css/routes/user-center.css';
|
||
wp_enqueue_style(
|
||
'aksrt-route-user-center',
|
||
$base_uri . '/assets/css/routes/user-center.css',
|
||
['aksrt-route-profile'],
|
||
file_exists($user_center_css_path) ? (string) filemtime($user_center_css_path) : $version
|
||
);
|
||
$identity_js = get_template_directory() . '/assets/js/routes/user-center-auth.js';
|
||
if (file_exists($identity_js)) {
|
||
wp_enqueue_script(
|
||
'aksrt-route-user-center-auth',
|
||
$base_uri . '/assets/js/routes/user-center-auth.js',
|
||
['aksrt-script'],
|
||
(string) filemtime($identity_js),
|
||
true
|
||
);
|
||
}
|
||
wp_enqueue_script(
|
||
'aksrt-route-user-center',
|
||
$base_uri . '/assets/js/routes/user-center.js',
|
||
file_exists($identity_js) ? ['aksrt-script', 'aksrt-route-user-center-auth'] : ['aksrt-script'],
|
||
file_exists(get_template_directory() . '/assets/js/routes/user-center.js')
|
||
? (string) filemtime(get_template_directory() . '/assets/js/routes/user-center.js')
|
||
: $version,
|
||
true
|
||
);
|
||
// 绑定手机短信发送按钮依赖 sign-register 的 data-aksrt-sms-trigger 契约
|
||
$sign_register_js = get_template_directory() . '/assets/js/sign-register.js';
|
||
if (file_exists($sign_register_js)) {
|
||
wp_enqueue_script(
|
||
'aksrt-sign-register',
|
||
$base_uri . '/assets/js/sign-register.js',
|
||
['aksrt-route-user-center'],
|
||
(string) filemtime($sign_register_js),
|
||
true
|
||
);
|
||
}
|
||
}
|
||
}
|
||
|
||
// 搜索结果页:路由专属 CSS(顶部卡片/胶囊搜索框/工具栏/空状态/关键词高亮)
|
||
if (is_search()) {
|
||
wp_enqueue_style(
|
||
'aksrt-route-search',
|
||
$base_uri . '/assets/css/routes/search.css',
|
||
['aksrt-tokens', 'aksrt-post-card'],
|
||
$version
|
||
);
|
||
}
|
||
|
||
// 分类汇总页:路由专属 CSS
|
||
if (is_page_template('templates/pages/page-categories.php')) {
|
||
wp_enqueue_style(
|
||
'aksrt-route-categories',
|
||
$base_uri . '/assets/css/routes/categories.css',
|
||
['aksrt-tokens'],
|
||
$version
|
||
);
|
||
}
|
||
|
||
// 友情链接页:路由专属 CSS
|
||
if (is_page_template('templates/pages/page-friends.php')) {
|
||
wp_enqueue_style(
|
||
'aksrt-route-friends',
|
||
$base_uri . '/assets/css/routes/friends.css',
|
||
['aksrt-tokens'],
|
||
file_exists(get_template_directory() . '/assets/css/routes/friends.css')
|
||
? (string) filemtime(get_template_directory() . '/assets/css/routes/friends.css')
|
||
: $version
|
||
);
|
||
}
|
||
|
||
// 网址导航页(zibll links.php)
|
||
if (is_page_template('templates/pages/page-links.php')) {
|
||
$links_css = get_template_directory() . '/assets/css/routes/links.css';
|
||
if (file_exists($links_css)) {
|
||
wp_enqueue_style(
|
||
'aksrt-route-links',
|
||
$base_uri . '/assets/css/routes/links.css',
|
||
['aksrt-tokens'],
|
||
(string) filemtime($links_css)
|
||
);
|
||
}
|
||
$links_js = get_template_directory() . '/assets/js/links-page.js';
|
||
if (file_exists($links_js)) {
|
||
wp_enqueue_script(
|
||
'aksrt-links-page',
|
||
$base_uri . '/assets/js/links-page.js',
|
||
['jquery'],
|
||
(string) filemtime($links_js),
|
||
true
|
||
);
|
||
}
|
||
}
|
||
|
||
// 文章导航页(zibll postsnavs.php)
|
||
if (is_page_template('templates/pages/page-posts-navs.php')) {
|
||
$page_navs_js = get_template_directory() . '/assets/js/page-navs.js';
|
||
if (file_exists($page_navs_js)) {
|
||
wp_enqueue_script(
|
||
'aksrt-page-navs',
|
||
$base_uri . '/assets/js/page-navs.js',
|
||
[],
|
||
(string) filemtime($page_navs_js),
|
||
true
|
||
);
|
||
}
|
||
|
||
$pn_css = get_template_directory() . '/assets/css/routes/posts-navs.css';
|
||
if (file_exists($pn_css)) {
|
||
wp_enqueue_style(
|
||
'aksrt-route-posts-navs',
|
||
$base_uri . '/assets/css/routes/posts-navs.css',
|
||
['aksrt-tokens'],
|
||
(string) filemtime($pn_css)
|
||
);
|
||
}
|
||
$section_navs = get_template_directory() . '/assets/js/section-navs.js';
|
||
if (file_exists($section_navs)) {
|
||
wp_enqueue_script(
|
||
'aksrt-section-navs',
|
||
$base_uri . '/assets/js/section-navs.js',
|
||
['jquery'],
|
||
(string) filemtime($section_navs),
|
||
true
|
||
);
|
||
}
|
||
$pn_js = get_template_directory() . '/assets/js/posts-navs-page.js';
|
||
if (file_exists($pn_js)) {
|
||
wp_enqueue_script(
|
||
'aksrt-posts-navs-page',
|
||
$base_uri . '/assets/js/posts-navs-page.js',
|
||
['jquery'],
|
||
(string) filemtime($pn_js),
|
||
true
|
||
);
|
||
}
|
||
}
|
||
|
||
// 文章归档页
|
||
if (is_page_template('templates/pages/page-archives.php')) {
|
||
$ar_css = get_template_directory() . '/assets/css/routes/archives.css';
|
||
if (file_exists($ar_css)) {
|
||
wp_enqueue_style(
|
||
'aksrt-route-archives',
|
||
$base_uri . '/assets/css/routes/archives.css',
|
||
['aksrt-tokens'],
|
||
(string) filemtime($ar_css)
|
||
);
|
||
}
|
||
}
|
||
|
||
// 文档导航页(zibll documentnav.php)
|
||
if (is_page_template('templates/pages/page-documentnav.php')) {
|
||
$dn_css = get_template_directory() . '/assets/css/routes/documentnav.css';
|
||
if (file_exists($dn_css)) {
|
||
wp_enqueue_style(
|
||
'aksrt-route-documentnav',
|
||
$base_uri . '/assets/css/routes/documentnav.css',
|
||
['aksrt-tokens'],
|
||
(string) filemtime($dn_css)
|
||
);
|
||
}
|
||
$dn_js = get_template_directory() . '/assets/js/documentnav-page.js';
|
||
if (file_exists($dn_js)) {
|
||
wp_enqueue_script(
|
||
'aksrt-documentnav-page',
|
||
$base_uri . '/assets/js/documentnav-page.js',
|
||
[],
|
||
(string) filemtime($dn_js),
|
||
true
|
||
);
|
||
}
|
||
}
|
||
|
||
// 禁封申诉页
|
||
if (is_page_template('templates/pages/page-ban-appeal.php')) {
|
||
$ba_css = get_template_directory() . '/assets/css/routes/ban-appeal.css';
|
||
if (file_exists($ba_css)) {
|
||
wp_enqueue_style(
|
||
'aksrt-route-ban-appeal',
|
||
$base_uri . '/assets/css/routes/ban-appeal.css',
|
||
['aksrt-tokens'],
|
||
(string) filemtime($ba_css)
|
||
);
|
||
}
|
||
$ba_js = get_template_directory() . '/assets/js/ban-appeal-page.js';
|
||
if (file_exists($ba_js)) {
|
||
wp_enqueue_script(
|
||
'aksrt-ban-appeal-page',
|
||
$base_uri . '/assets/js/ban-appeal-page.js',
|
||
[],
|
||
(string) filemtime($ba_js),
|
||
true
|
||
);
|
||
}
|
||
}
|
||
|
||
// 交易中心共享壳层(订单 / 收益)
|
||
// Virtual rewrite routes (aksrt_orders / aksrt_revenue) also count.
|
||
$is_commerce_center = is_page_template('templates/pages/page-orders.php')
|
||
|| is_page_template('templates/pages/page-revenue.php')
|
||
|| (bool) get_query_var('aksrt_orders')
|
||
|| (bool) get_query_var('aksrt_revenue');
|
||
if ($is_commerce_center) {
|
||
$commerce_css = get_template_directory() . '/assets/css/routes/commerce.css';
|
||
if (file_exists($commerce_css)) {
|
||
wp_enqueue_style(
|
||
'aksrt-commerce-shell',
|
||
$base_uri . '/assets/css/routes/commerce.css',
|
||
['aksrt-tokens'],
|
||
(string) filemtime($commerce_css)
|
||
);
|
||
}
|
||
}
|
||
|
||
// 订单中心:独立页 / 虚拟 rewrite / 用户中心 tab=orders
|
||
$is_orders_surface = is_page_template('templates/pages/page-orders.php')
|
||
|| (bool) get_query_var('aksrt_orders')
|
||
|| (
|
||
(function_exists('aksrt_is_user_center_page') && aksrt_is_user_center_page())
|
||
&& isset($_GET['tab'])
|
||
&& sanitize_key((string) wp_unslash($_GET['tab'])) === 'orders'
|
||
);
|
||
if ($is_orders_surface) {
|
||
wp_enqueue_style(
|
||
'aksrt-orders',
|
||
$base_uri . '/assets/css/routes/orders.css',
|
||
['aksrt-tokens'],
|
||
$version
|
||
);
|
||
wp_enqueue_script(
|
||
'aksrt-order-center',
|
||
$base_uri . '/assets/js/order-center.js',
|
||
['aksrt-script'],
|
||
file_exists(get_template_directory() . '/assets/js/order-center.js')
|
||
? (string) filemtime(get_template_directory() . '/assets/js/order-center.js')
|
||
: $version,
|
||
true
|
||
);
|
||
}
|
||
|
||
// 收益中心:旧路由重定向页 / 用户中心 tab=revenue。
|
||
$is_revenue_surface = is_page_template('templates/pages/page-revenue.php')
|
||
|| (bool) get_query_var('aksrt_revenue')
|
||
|| (
|
||
(function_exists('aksrt_is_user_center_page') && aksrt_is_user_center_page())
|
||
&& isset($_GET['tab'])
|
||
&& in_array(sanitize_key((string) wp_unslash($_GET['tab'])), ['revenue', 'invite', 'promotion'], true)
|
||
);
|
||
if ($is_revenue_surface) {
|
||
$revenue_js = get_template_directory() . '/assets/js/revenue.js';
|
||
wp_enqueue_script(
|
||
'aksrt-revenue',
|
||
$base_uri . '/assets/js/revenue.js',
|
||
['aksrt-script'],
|
||
file_exists($revenue_js) ? (string) filemtime($revenue_js) : $version,
|
||
true
|
||
);
|
||
}
|
||
|
||
// 消息中心页
|
||
if (is_page_template('templates/pages/page-messages.php')) {
|
||
$messages_css = get_template_directory() . '/assets/css/frontend/messages.css';
|
||
if (file_exists($messages_css)) {
|
||
wp_enqueue_style(
|
||
'aksrt-messages',
|
||
$base_uri . '/assets/css/frontend/messages.css',
|
||
['aksrt-tokens'],
|
||
(string) filemtime($messages_css)
|
||
);
|
||
}
|
||
$messages_js = get_template_directory() . '/assets/js/messages.js';
|
||
if (file_exists($messages_js)) {
|
||
wp_enqueue_script(
|
||
'aksrt-messages',
|
||
$base_uri . '/assets/js/messages.js',
|
||
['aksrt-script'],
|
||
(string) filemtime($messages_js),
|
||
true
|
||
);
|
||
}
|
||
$conversation_js = get_template_directory() . '/assets/js/conversation.js';
|
||
if (file_exists($conversation_js)) {
|
||
wp_enqueue_script(
|
||
'aksrt-conversation',
|
||
$base_uri . '/assets/js/conversation.js',
|
||
['aksrt-script'],
|
||
(string) filemtime($conversation_js),
|
||
true
|
||
);
|
||
}
|
||
}
|
||
|
||
// Unified share-data builder — single payload assembler for every share
|
||
// surface (dropdown, copy, WeChat, poster). Loaded on any singular view.
|
||
if (is_singular()) {
|
||
$share_data_js = get_template_directory() . '/assets/js/share-data-builder.js';
|
||
if (file_exists($share_data_js)) {
|
||
wp_enqueue_script(
|
||
'aksrt-share-data',
|
||
$base_uri . '/assets/js/share-data-builder.js',
|
||
['aksrt-script'],
|
||
(string) filemtime($share_data_js),
|
||
true
|
||
);
|
||
}
|
||
}
|
||
|
||
// 单篇文章 — poster-share.js(海报分享按钮)
|
||
if (is_singular('post')) {
|
||
$poster_js = get_template_directory() . '/assets/js/poster-share.js';
|
||
if (file_exists($poster_js)) {
|
||
wp_enqueue_script(
|
||
'aksrt-poster-share',
|
||
$base_uri . '/assets/js/poster-share.js',
|
||
['aksrt-script', 'aksrt-share-data'],
|
||
(string) filemtime($poster_js),
|
||
true
|
||
);
|
||
}
|
||
}
|
||
|
||
// 登录/注册/绑定 — pages + auth 路由专属 CSS
|
||
if ($is_auth_page) {
|
||
$enqueue_module('pages');
|
||
// Auth 路由专属样式
|
||
wp_enqueue_style(
|
||
'aksrt-route-auth',
|
||
$base_uri . '/assets/css/routes/auth.css',
|
||
['aksrt-tokens'],
|
||
file_exists(get_template_directory() . '/assets/css/routes/auth.css')
|
||
? (string) filemtime(get_template_directory() . '/assets/css/routes/auth.css')
|
||
: $version
|
||
);
|
||
|
||
$sign_css = get_template_directory() . '/assets/css/routes/sign.css';
|
||
if (file_exists($sign_css)) {
|
||
wp_enqueue_style(
|
||
'aksrt-route-sign',
|
||
$base_uri . '/assets/css/routes/sign.css',
|
||
['aksrt-tokens'],
|
||
(string) filemtime($sign_css)
|
||
);
|
||
}
|
||
// 手机号注册/登录 + SMS 倒计时 + 人机验证联动
|
||
$sign_js_path = get_template_directory() . '/assets/js/sign-register.js';
|
||
if (file_exists($sign_js_path)) {
|
||
wp_enqueue_script(
|
||
'aksrt-sign-register',
|
||
$base_uri . '/assets/js/sign-register.js',
|
||
['aksrt-script'],
|
||
(string) filemtime($sign_js_path),
|
||
true
|
||
);
|
||
}
|
||
}
|
||
|
||
|
||
// 404 页面
|
||
if (is_404()) {
|
||
$enqueue_module('pages');
|
||
}
|
||
|
||
// grid-cms 卡片样式
|
||
if ($is_resource_archive || $is_single_resource || ($is_cms_mode && ($is_home_or_archive || $is_static_page) && !$is_fixed_homepage)) {
|
||
$enqueue_module('post-card-cms');
|
||
// 确保 post-card 基础样式也加载(若上面分支未加)
|
||
if (!$is_home_or_archive && !$is_single_post && !$is_static_page) {
|
||
$enqueue_module('post-card');
|
||
}
|
||
}
|
||
|
||
// 单篇资源专属样式
|
||
if ($is_single_resource) {
|
||
$enqueue_module('single-post');
|
||
$enqueue_module('resource-meta');
|
||
$enqueue_module('comments');
|
||
$enqueue_module('widgets');
|
||
}
|
||
|
||
// 资源归档专属样式
|
||
if ($is_resource_archive) {
|
||
$enqueue_module('resource-archive');
|
||
}
|
||
|
||
// 单篇资源 / 付费内容 / 独立下载页:下载 + 收银台脚本
|
||
if ($is_single_resource || $is_paid_content_single || $is_download_file_page) {
|
||
$cms_download_js_path = get_template_directory() . '/assets/js/cms-download.js';
|
||
wp_enqueue_script(
|
||
'aksrt-cms-download',
|
||
$base_uri . '/assets/js/cms-download.js',
|
||
['aksrt-script', 'aksrt-runtime'],
|
||
file_exists($cms_download_js_path) ? (string) filemtime($cms_download_js_path) : $version,
|
||
true
|
||
);
|
||
}
|
||
|
||
// Legacy freeform CMS home modules: only for non-fixed CMS archive previews.
|
||
$is_cms_home = ($is_home_or_archive && $is_cms_mode) && !$is_fixed_homepage;
|
||
// 管理员预览模式(?aksrt_preview=...):无论站点风格都允许加载模块系统资源
|
||
$is_preview = is_user_logged_in() && current_user_can('manage_options') && isset($_GET['aksrt_preview']);
|
||
|
||
if ($is_cms_home || $is_preview) {
|
||
$enqueue_module('home-modules');
|
||
$enqueue_module('post-card'); // 模块内复用
|
||
$enqueue_module('header-components'); // header components 模块依赖
|
||
$enqueue_module('post-card-cms'); // grid-cms 卡片依赖
|
||
|
||
wp_enqueue_script(
|
||
'aksrt-cms-home-modules',
|
||
$base_uri . '/assets/js/cms-home-modules.js',
|
||
['aksrt-script'],
|
||
$version,
|
||
true
|
||
);
|
||
}
|
||
|
||
if ($is_fixed_homepage) {
|
||
$enqueue_module('header-components'); // header-slider / hero
|
||
$enqueue_module('post-card');
|
||
$homepage_css_path = get_template_directory() . '/assets/css/frontend/homepage-fixed.css';
|
||
$homepage_style_deps = file_exists($frontend_bundle)
|
||
? ['aksrt-frontend-bundle', 'aksrt-header-components', 'aksrt-post-card']
|
||
: ['aksrt-zibll-compat-vars', 'aksrt-layout', 'aksrt-widgets', 'aksrt-header-components', 'aksrt-post-card'];
|
||
$homepage_style_deps = array_values(array_filter(
|
||
$homepage_style_deps,
|
||
static fn(string $handle): bool => wp_style_is($handle, 'registered')
|
||
));
|
||
wp_enqueue_style(
|
||
'aksrt-homepage-fixed',
|
||
$base_uri . '/assets/css/frontend/homepage-fixed.css',
|
||
$homepage_style_deps,
|
||
file_exists($homepage_css_path) ? (string) filemtime($homepage_css_path) : $version
|
||
);
|
||
}
|
||
|
||
// 积分相关:已登录 + 启用积分功能时全站加载
|
||
if (is_user_logged_in() && class_exists('\AKSRT\Settings\Settings') && \AKSRT\Settings\Settings::credits_enabled()) {
|
||
$enqueue_module('credits');
|
||
|
||
// profile 页:加载 credits.js(签到 + 邀请交互)
|
||
if ($is_profile_page) {
|
||
$credits_js_path = get_template_directory() . '/assets/js/credits.js';
|
||
wp_enqueue_script(
|
||
'aksrt-credits',
|
||
$base_uri . '/assets/js/credits.js',
|
||
['aksrt-script'],
|
||
file_exists($credits_js_path) ? (string) filemtime($credits_js_path) : $version,
|
||
true
|
||
);
|
||
|
||
$badges_js_path = get_template_directory() . '/assets/js/user-badges.js';
|
||
if (file_exists($badges_js_path)) {
|
||
wp_enqueue_script(
|
||
'aksrt-user-badges',
|
||
$base_uri . '/assets/js/user-badges.js',
|
||
['aksrt-script'],
|
||
(string) filemtime($badges_js_path),
|
||
true
|
||
);
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
|
||
// Badges UI: user center + public profile (zibll medal modal/list).
|
||
if (class_exists('\AKSRT\User\Badges') && \AKSRT\User\Badges::enabled()) {
|
||
$is_badge_surface = $is_profile_page
|
||
|| is_author()
|
||
|| (function_exists('aksrt_is_user_home_page') && aksrt_is_user_home_page())
|
||
|| (function_exists('aksrt_is_user_center_page') && aksrt_is_user_center_page());
|
||
if ($is_badge_surface) {
|
||
$enqueue_module('medal');
|
||
$badges_js_path_global = get_template_directory() . '/assets/js/user-badges.js';
|
||
if (file_exists($badges_js_path_global) && !wp_script_is('aksrt-user-badges', 'enqueued')) {
|
||
wp_enqueue_script(
|
||
'aksrt-user-badges',
|
||
$base_uri . '/assets/js/user-badges.js',
|
||
['aksrt-script', 'aksrt-core-remote-modal'],
|
||
(string) filemtime($badges_js_path_global),
|
||
true
|
||
);
|
||
}
|
||
}
|
||
}
|
||
|
||
$this->enqueue_public_fonts_js_and_data($base_uri, $core_dep, $deps, $is_fixed_homepage, $is_home_or_archive, $is_single_post, $is_single_resource, $version);
|
||
}
|
||
|
||
}
|