feat(frontend): deepen single post 1:1 parity with Zibll

Split related style/source settings, add subtitle/meta/allow-view helpers, align cover/author/tags/pay shell markup and CSS with Zibll single.
This commit is contained in:
kate522 committed 2026-07-13 12:43:07 +08:00
1 parent 72ea0828bc
commit 48f7436030
14 files changed
+2156 -1434

No files matched your search

+17 -60
View File
@@ -896,68 +896,25 @@ class AKSRT_Settings {
* @return array{toc_enabled:bool,toc_depth:int,reading_progress:bool,lightbox:bool,related_enabled:bool,related_count:int,like_enabled:bool,favorite_enabled:bool,share_enabled:bool,copyright_enabled:bool,print_enabled:bool,pdf_export_enabled:bool,word_count_enabled:bool,reading_time_enabled:bool}
*/
public static function get_post_page_settings(): array {
// Canonical assembly lives in the post-display helper (related style/source split, aliases).
if (class_exists('AKSRT_Settings_Post_Display')) {
return AKSRT_Settings_Post_Display::get_post_page_settings();
}
$settings = self::get_all();
$related_type = sanitize_key((string) ($settings['post_related_type'] ?? 'category'));
if (!in_array($related_type, ['category', 'tag', 'random'], true)) {
$related_type = 'category';
}
$related_orderby = sanitize_key((string) ($settings['post_related_orderby'] ?? 'rand'));
if (!in_array($related_orderby, ['rand', 'relevance', 'date', 'views', 'modified'], true)) {
$related_orderby = 'rand';
}
return [
'toc_enabled' => !isset($settings['post_toc_enabled']) || !empty($settings['post_toc_enabled']),
'toc_depth' => max(1, min(6, (int) ($settings['post_toc_depth'] ?? 3))),
'reading_progress' => !isset($settings['post_reading_progress']) || !empty($settings['post_reading_progress']),
'breadcrumbs' => !isset($settings['breadcrumbs_single_s']) || !empty($settings['breadcrumbs_single_s']),
'breadcrumbs_home' => trim((string) ($settings['breadcrumbs_home_text'] ?? '')) ?: __('首页', 'aksrt'),
'prevnext' => !isset($settings['post_prevnext_s']) || !empty($settings['post_prevnext_s']),
'authordesc' => !isset($settings['post_authordesc_s']) || !empty($settings['post_authordesc_s']),
'hide_time' => !empty($settings['post_single_hide_time_s']),
'lightbox' => !isset($settings['post_lightbox']) || !empty($settings['post_lightbox']),
'related_enabled' => !isset($settings['post_related_enabled']) || !empty($settings['post_related_enabled']),
'related_count' => max(1, min(20, (int) ($settings['post_related_count'] ?? 6))),
'related_type' => $related_type,
'related_orderby' => $related_orderby,
'related_title' => sanitize_text_field((string) ($settings['post_related_title'] ?? '')),
'like_enabled' => !isset($settings['post_like_enabled']) || !empty($settings['post_like_enabled']),
'favorite_enabled' => !isset($settings['post_favorite_enabled']) || !empty($settings['post_favorite_enabled']),
'share_enabled' => !isset($settings['share_s']) || !empty($settings['share_s']) || !empty($settings['post_share_enabled']),
'rewards_enabled' => !empty($settings['post_rewards_s']) || !empty($settings['post_rewards_enabled']),
'rewards_text' => trim((string) ($settings['post_rewards_text'] ?? '')) ?: __('赞赏支持', 'aksrt'),
'rewards_image' => esc_url_raw((string) ($settings['post_rewards_img'] ?? '')),
'rewards_btn_text' => trim((string) ($settings['post_rewards_btn_text'] ?? '')) ?: __('赞赏', 'aksrt'),
'copyright_enabled' => !isset($settings['post_copyright_enabled']) || !empty($settings['post_copyright_enabled']),
'copyright_text' => trim((string) ($settings['post_copyright_text'] ?? '')),
'front_content' => trim((string) ($settings['post_front_content'] ?? '')),
'after_content' => trim((string) ($settings['post_after_content'] ?? '')),
'maxheight_enabled' => !empty($settings['post_maxheight_kg']),
'maxheight' => max(0, (int) ($settings['post_maxheight'] ?? 1000)),
'yiyan_header' => !empty($settings['post_yiyan_header']),
'yiyan_footer' => !empty($settings['post_yiyan_footer']),
'yiyan_box' => !empty($settings['post_yiyan_box']),
'default_views_min' => max(0, (int) ($settings['post_default_views_min'] ?? 20)),
'default_views_max' => max(1, (int) ($settings['post_default_views_max'] ?? 50)),
'default_likes_min' => max(0, (int) ($settings['post_default_likes_min'] ?? 5)),
'default_likes_max' => max(1, (int) ($settings['post_default_likes_max'] ?? 15)),
'print_enabled' => !isset($settings['feature_print']) || !empty($settings['feature_print']),
'pdf_export_enabled' => !empty($settings['feature_pdf_export']),
'word_count_enabled' => !isset($settings['feature_word_count']) || !empty($settings['feature_word_count']),
'reading_time_enabled' => !isset($settings['feature_reading_time']) || !empty($settings['feature_reading_time']),
'article_image_cover' => !isset($settings['post_article_image_cover']) || !empty($settings['post_article_image_cover']),
'article_image_cover_scale' => max(10, min(100, (int) ($settings['post_article_image_cover_scale'] ?? 35))),
'article_slide_cover' => !isset($settings['post_article_slide_cover']) || !empty($settings['post_article_slide_cover']),
'article_video_cover' => !isset($settings['post_article_video_cover']) || !empty($settings['post_article_video_cover']),
'article_video_cover_scale' => max(20, min(100, (int) ($settings['post_article_video_cover_scale'] ?? 56))),
'button_toptext' => trim((string) ($settings['post_button_toptext'] ?? '')) ?: __('喜欢就支持一下吧', 'aksrt'),
'lightbox_thumbs' => !isset($settings['post_lightbox_thumbs']) || !empty($settings['post_lightbox_thumbs']),
'lightbox_zoom' => !isset($settings['post_lightbox_zoom']) || !empty($settings['post_lightbox_zoom']),
'lightbox_full' => !isset($settings['post_lightbox_full']) || !empty($settings['post_lightbox_full']),
'lightbox_down' => !empty($settings['post_lightbox_down']),
'lightbox_play' => !empty($settings['post_lightbox_play']),
'mobile_nav_s' => !isset($settings['article_nav_mobile_nav_s']) || !empty($settings['article_nav_mobile_nav_s']),
'toc_enabled' => !isset($settings['post_toc_enabled']) || !empty($settings['post_toc_enabled']),
'toc_depth' => max(1, min(6, (int) ($settings['post_toc_depth'] ?? 3))),
'reading_progress' => !isset($settings['post_reading_progress']) || !empty($settings['post_reading_progress']),
'breadcrumbs' => !isset($settings['breadcrumbs_single_s']) || !empty($settings['breadcrumbs_single_s']),
'breadcrumbs_home' => trim((string) ($settings['breadcrumbs_home_text'] ?? '')) ?: __('首页', 'aksrt'),
'related_enabled' => !isset($settings['post_related_enabled']) || !empty($settings['post_related_enabled']),
'related_count' => max(1, min(20, (int) ($settings['post_related_count'] ?? 6))),
'related_style' => 'img',
'related_source' => 'category',
'related_type' => 'category',
'related_orderby' => 'views',
'related_title' => sanitize_text_field((string) ($settings['post_related_title'] ?? '相关推荐')),
];
}