feat(frontend): replace article system with Zibll 9.0

This commit is contained in:
2026-08-18 16:06:47 +08:00
parent 2881c69e9c
commit 0f2ac6c34a
69 changed files with 2603 additions and 4163 deletions
+4 -49
View File
@@ -206,12 +206,7 @@ if (!function_exists('aksrt_homepage_get_latest_panel_contract')) {
unset($query_vars['paged'], $query_vars['page']);
$render_config = function_exists('aksrt_resolve_post_list_render_config')
? aksrt_resolve_post_list_render_config(['context' => 'home'])
: [
'mode' => 'list',
'context' => 'home',
];
$render_config = aksrt_resolve_post_list_render_config(['context' => 'home']);
$render_config['skip_wrapper'] = true;
return [
@@ -364,57 +359,17 @@ if (!function_exists('aksrt_get_post_gallery_images')) {
}
}
if (!function_exists('aksrt_homepage_render_post_card')) {
/**
* Render a homepage post card inline.
*/
function aksrt_homepage_render_post_card(): void {
if (!function_exists('aksrt_render_post')) {
return;
}
$config = function_exists('aksrt_resolve_post_list_render_config')
? aksrt_resolve_post_list_render_config(['context' => 'home'])
: [
'mode' => 'list',
'context' => 'home',
];
echo aksrt_render_post($config); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
}
if (!function_exists('aksrt_homepage_render_posts_grid')) {
/**
* Render a list block for the fixed homepage.
*/
function aksrt_homepage_render_posts_grid(?WP_Query $query = null, bool $with_pagination = false): void {
$query = $query instanceof WP_Query ? $query : aksrt_homepage_get_latest_query();
$config = function_exists('aksrt_resolve_post_list_render_config')
? aksrt_resolve_post_list_render_config(['context' => 'home'])
: [
'mode' => 'list',
'context' => 'home',
];
$config = aksrt_resolve_post_list_render_config(['context' => 'home']);
$config['skip_wrapper'] = true;
$view = (($config['mode'] ?? 'list') === 'card') ? 'card' : 'list';
if (function_exists('aksrt_render_post_list')) {
// Panel already provides posts-row.ajaxpager; avoid nested wrapper.
aksrt_render_post_list($query, $config, true);
} else {
if (!$query->have_posts()) {
echo '<div class="no-results"><p>' . esc_html__('暂无文章', 'aksrt') . '</p></div>';
} else {
echo '<div class="posts-row aksrt-homepage__posts" data-view="' . esc_attr($view) . '">';
while ($query->have_posts()) {
$query->the_post();
aksrt_homepage_render_post_card();
}
echo '</div>';
}
wp_reset_postdata();
}
// Panel already provides posts-row.ajaxpager; avoid nested wrapper.
aksrt_render_post_list($config, $query, true);
if ($with_pagination) {
aksrt_homepage_render_pagination($query);