feat(forum): frontend 1:1 list/tabs/urls/enqueue

Wire Zibll-style board sort tabs, shared topic rows, page-template
URLs, forum asset enqueue on home/plate, home synthesis load-more,
and topic last_reply meta for last-reply ordering. No dual-read.
This commit is contained in:
2026-07-12 08:38:31 +08:00
parent df6b224dd3
commit 780c8cb4f7
23 changed files with 843 additions and 481 deletions
@@ -341,8 +341,16 @@ trait AKSRT_Scripts_Part_1b {
);
}
// Forum pages
if (is_page_template('templates/pages/page-forums.php') || is_tax('aksrt_forum_board') || is_tax('aksrt_forum_tag') || is_singular('aksrt_forum_topic') || is_page_template('templates/forum/forum-compose.php')) {
// Forum pages (home / plate / board tax / tag / topic / compose / plate-cat)
$is_forum_surface = is_page_template('templates/pages/page-forums.php')
|| is_page_template('templates/forum/forum-compose.php')
|| is_tax('aksrt_forum_board')
|| is_tax('aksrt_forum_tag')
|| is_tax('aksrt_plate_cat')
|| is_singular('aksrt_forum_topic')
|| is_singular('aksrt_forum_plate');
if ($is_forum_surface) {
wp_enqueue_style(
'aksrt-forum',
$base_uri . '/assets/css/frontend/forum.css',
@@ -438,7 +446,7 @@ trait AKSRT_Scripts_Part_1b {
}
}
if (is_tax('aksrt_forum_board') || is_singular('aksrt_forum_topic') || is_singular('aksrt_forum_plate') || is_tax('aksrt_plate_cat') || is_page_template('templates/forum/forum-compose.php')) {
if ($is_forum_surface) {
$forum_governance_js = get_template_directory() . '/assets/js/forum-governance.js';
if (file_exists($forum_governance_js)) {
wp_enqueue_script(
@@ -449,9 +457,15 @@ trait AKSRT_Scripts_Part_1b {
true
);
wp_localize_script('aksrt-forum-governance', 'aksrtForumGovernance', [
'ajaxUrl' => admin_url('admin-ajax.php'),
'restUrl' => esc_url_raw(rest_url()),
'restNonce' => wp_create_nonce('wp_rest'),
'ajaxUrl' => admin_url('admin-ajax.php'),
'restUrl' => esc_url_raw(rest_url()),
'restNonce' => wp_create_nonce('wp_rest'),
'publicNonce' => wp_create_nonce('aksrt_public_nonce'),
'i18n' => [
'empty' => __('内容空空如也', 'aksrt'),
'loadMore' => __('加载更多', 'aksrt'),
'loading' => __('加载中…', 'aksrt'),
],
]);
}