diff --git a/assets/admin/src/utils/home-module-schema.js b/assets/admin/src/utils/home-module-schema.js index 77daa7ae..ddda5607 100644 --- a/assets/admin/src/utils/home-module-schema.js +++ b/assets/admin/src/utils/home-module-schema.js @@ -109,8 +109,8 @@ export const MODULE_LIBRARY = [ type: 'ranking', label: '排行榜', icon: 'trophy', - desc: '按下载量 / 阅读量 / 评论数排序', - defaultConfig: { metric: 'downloads', count: 6, post_type: 'resource', title: '' }, + desc: '按下载量 / 阅读量 / 评论数排序(普通文章)', + defaultConfig: { metric: 'downloads', count: 6, title: '' }, fields: [ { key: 'title', type: 'text', label: '标题' }, { @@ -121,31 +121,17 @@ export const MODULE_LIBRARY = [ { label: '评论数', value: 'comments' }, ], }, - { - key: 'post_type', type: 'select', label: '内容类型', - options: [ - { label: '资源', value: 'resource' }, - { label: '文章', value: 'post' }, - ], - }, { key: 'count', type: 'number', label: '数量', min: 1, max: 20 }, ], }, { type: 'recent', - label: '最新内容', + label: '最新文章', icon: 'clock', - desc: '按时间倒序的最新文章 / 资源', - defaultConfig: { post_type: 'post', count: 6, layout: 'card', title: '' }, + desc: '按时间倒序的最新文章', + defaultConfig: { count: 6, layout: 'card', title: '' }, fields: [ { key: 'title', type: 'text', label: '标题' }, - { - key: 'post_type', type: 'select', label: '内容类型', - options: [ - { label: '文章', value: 'post' }, - { label: '资源', value: 'resource' }, - ], - }, { key: 'count', type: 'number', label: '数量', min: 1, max: 20 }, { key: 'layout', type: 'select', label: '布局', @@ -196,7 +182,7 @@ export const MODULE_LIBRARY = [ label: '热点推荐', icon: 'fire', desc: '文章推荐列表(纯文本,仅桌面端显示)', - defaultConfig: { count: 6, post_type: 'post', source: 'auto', title: '' }, + defaultConfig: { count: 6, source: 'auto', title: '' }, fields: [ { key: 'title', type: 'text', label: '标题' }, { key: 'count', type: 'number', label: '数量', min: 3, max: 20 }, @@ -208,13 +194,6 @@ export const MODULE_LIBRARY = [ { label: '最热文章(按阅读量)', value: 'views' }, ], }, - { - key: 'post_type', type: 'select', label: '内容类型', - options: [ - { label: '文章', value: 'post' }, - { label: '资源', value: 'resource' }, - ], - }, ], }, { @@ -478,12 +457,12 @@ export const PRESET_TEMPLATES = [ { key: 'resource_standard', label: '资源站标准', - desc: 'Hero(固定骨架)+ Tabs + 最新资源 + 下载排行', + desc: 'Hero(固定骨架)+ Tabs + 最新文章 + 下载排行', modules: [ { type: 'hero', config: {} }, { type: 'tabs', config: { count: 8, layout: 'grid-cms' } }, - { type: 'recent', config: { post_type: 'resource', count: 8, layout: 'grid-cms' } }, - { type: 'ranking', config: { metric: 'downloads', post_type: 'resource', count: 6 } }, + { type: 'recent', config: { count: 8, layout: 'grid-cms' } }, + { type: 'ranking', config: { metric: 'downloads', count: 6 } }, ], }, { @@ -503,7 +482,7 @@ export const PRESET_TEMPLATES = [ desc: 'Hero(固定骨架)+ 最新文章 + 多个分类块', modules: [ { type: 'hero', config: {} }, - { type: 'recent', config: { post_type: 'post', count: 6, layout: 'card' } }, + { type: 'recent', config: { count: 6, layout: 'card' } }, { type: 'category', config: { count: 6, columns: 3, layout: 'card' } }, { type: 'category', config: { count: 6, columns: 3, layout: 'card' } }, ], diff --git a/inc/classes/class-aksrt-home-modules.php b/inc/classes/class-aksrt-home-modules.php index 2e4ca29f..6a13446f 100644 --- a/inc/classes/class-aksrt-home-modules.php +++ b/inc/classes/class-aksrt-home-modules.php @@ -215,7 +215,7 @@ class AKSRT_Home_Modules { case 'mixed': return [ ['type' => 'hero', 'config' => []], - ['type' => 'recent', 'config' => ['post_type' => 'post', 'count' => 6, 'layout' => 'card']], + ['type' => 'recent', 'config' => ['count' => 6, 'layout' => 'card']], ['type' => 'category', 'config' => ['count' => 6, 'columns' => 3]], ['type' => 'category', 'config' => ['count' => 6, 'columns' => 3]], ]; @@ -225,8 +225,8 @@ class AKSRT_Home_Modules { return [ ['type' => 'hero', 'config' => []], ['type' => 'tabs', 'config' => ['count' => 8]], - ['type' => 'recent', 'config' => ['post_type' => 'resource', 'count' => 8, 'layout' => 'grid-cms']], - ['type' => 'ranking', 'config' => ['metric' => 'downloads', 'count' => 6, 'post_type' => 'resource']], + ['type' => 'recent', 'config' => ['count' => 8, 'layout' => 'grid-cms']], + ['type' => 'ranking', 'config' => ['metric' => 'downloads', 'count' => 6]], ]; } } diff --git a/inc/helpers/aksrt-resource.php b/inc/helpers/aksrt-resource.php index 6311607d..f3d6798c 100644 --- a/inc/helpers/aksrt-resource.php +++ b/inc/helpers/aksrt-resource.php @@ -443,19 +443,6 @@ if (!function_exists('aksrt_is_resource_archive')) { } } -/** - * Normalize homepage-module content scope. - * Values: post | resource (resource = posts marked _aksrt_is_resource). - */ -if (!function_exists('aksrt_normalize_content_scope')) { - function aksrt_normalize_content_scope($scope): string { - $scope = sanitize_key((string) $scope); - if ($scope === 'resource') { - return 'resource'; - } - return 'post'; - } -} if (!function_exists('aksrt_detect_cloud_service')) { /** diff --git a/templates/parts/home-modules/module-hotspot.php b/templates/parts/home-modules/module-hotspot.php index 9aedad3b..2f2202ef 100644 --- a/templates/parts/home-modules/module-hotspot.php +++ b/templates/parts/home-modules/module-hotspot.php @@ -3,7 +3,7 @@ * Home Module · Hotspot 热点推荐 * * 纯文章列表(无图片),仅桌面端显示。 - * config: { count, post_type: 'post'|'resource', source, title? } + * config: { count, source, title? } * * source: * 'auto' → 优先读取 aksrt_recommend meta,不足时用最新补充 @@ -18,9 +18,6 @@ if (!is_array($cfg)) { } $count = max(3, min(20, (int) ($cfg['count'] ?? 6))); -$scope = function_exists('aksrt_normalize_content_scope') - ? aksrt_normalize_content_scope($cfg['post_type'] ?? 'post') - : 'post'; $source = (string) ($cfg['source'] ?? 'auto'); $title = (string) ($cfg['title'] ?? ''); @@ -28,8 +25,6 @@ if (!in_array($source, ['auto', 'recent', 'views'], true)) { $source = 'auto'; } -$is_resource = $scope === 'resource'; - $args = [ 'post_type' => 'post', 'posts_per_page' => $count, @@ -37,15 +32,8 @@ $args = [ 'no_found_rows' => true, ]; -$meta_query = []; -if ($is_resource) { - $meta_query[] = function_exists('aksrt_resource_meta_query') - ? aksrt_resource_meta_query() - : ['key' => '_aksrt_is_resource', 'value' => '1', 'compare' => '=']; -} - if ($source === 'auto') { - $meta_query[] = [ + $args['meta_query'] = [ 'relation' => 'OR', ['key' => 'aksrt_recommend', 'value' => '1', 'compare' => '='], ['key' => 'aksrt_recommend', 'compare' => 'NOT EXISTS'], @@ -61,20 +49,13 @@ if ($source === 'auto') { $args['order'] = 'DESC'; } -if (count($meta_query) === 1) { - $args['meta_query'] = $meta_query; -} elseif (count($meta_query) > 1) { - $args['meta_query'] = array_merge(['relation' => 'AND'], $meta_query); -} - $query = new WP_Query($args); if (!$query->have_posts()) { wp_reset_postdata(); return; } -$default_title = __('热点推荐', 'aksrt'); -$display_title = $title ?: $default_title; +$display_title = $title ?: __('热点推荐', 'aksrt'); ?>
diff --git a/templates/parts/home-modules/module-ranking.php b/templates/parts/home-modules/module-ranking.php index 1f558d94..497b125a 100644 --- a/templates/parts/home-modules/module-ranking.php +++ b/templates/parts/home-modules/module-ranking.php @@ -2,7 +2,8 @@ /** * Home Module · Ranking * - * config: { metric: 'views|downloads|comments', count, post_type: 'post'|'resource', title? } + * config: { metric: 'views|downloads|comments', count, title? } + * Lists ordinary posts only (no content-type split). */ defined('ABSPATH') || exit; @@ -13,30 +14,18 @@ if (!is_array($cfg)) { $metric = (string) ($cfg['metric'] ?? 'downloads'); $count = max(1, min(20, (int) ($cfg['count'] ?? 6))); -$scope = function_exists('aksrt_normalize_content_scope') - ? aksrt_normalize_content_scope($cfg['post_type'] ?? 'resource') - : 'resource'; $title = (string) ($cfg['title'] ?? ''); if (!in_array($metric, ['views', 'downloads', 'comments'], true)) { $metric = 'downloads'; } -$is_resource_module = $scope === 'resource'; - $args = [ 'post_type' => 'post', 'posts_per_page' => $count, 'post_status' => 'publish', 'no_found_rows' => true, ]; -if ($is_resource_module) { - $args['meta_query'] = [ - function_exists('aksrt_resource_meta_query') - ? aksrt_resource_meta_query() - : ['key' => '_aksrt_is_resource', 'value' => '1', 'compare' => '='], - ]; -} switch ($metric) { case 'views': diff --git a/templates/parts/home-modules/module-recent.php b/templates/parts/home-modules/module-recent.php index e7efb201..b718486d 100644 --- a/templates/parts/home-modules/module-recent.php +++ b/templates/parts/home-modules/module-recent.php @@ -2,7 +2,8 @@ /** * Home Module · Recent * - * config: { post_type: 'post'|'resource', count, layout, title? } + * config: { count, layout, title? } + * Lists ordinary posts only (no content-type split). */ defined('ABSPATH') || exit; @@ -11,9 +12,6 @@ if (!is_array($cfg)) { $cfg = []; } -$scope = function_exists('aksrt_normalize_content_scope') - ? aksrt_normalize_content_scope($cfg['post_type'] ?? 'post') - : ((string) ($cfg['post_type'] ?? 'post') === 'resource' ? 'resource' : 'post'); $count = max(1, min(20, (int) ($cfg['count'] ?? 6))); $layout = (string) ($cfg['layout'] ?? 'card'); $title = (string) ($cfg['title'] ?? ''); @@ -22,8 +20,6 @@ if (!in_array($layout, ['card', 'list', 'masonry', 'grid-cms'], true)) { $layout = 'card'; } -$is_resource_module = $scope === 'resource'; - $args = [ 'post_type' => 'post', 'posts_per_page' => $count, @@ -32,13 +28,6 @@ $args = [ 'orderby' => 'date', 'order' => 'DESC', ]; -if ($is_resource_module) { - $args['meta_query'] = [ - function_exists('aksrt_resource_meta_query') - ? aksrt_resource_meta_query() - : ['key' => '_aksrt_is_resource', 'value' => '1', 'compare' => '='], - ]; -} $query = new WP_Query($args); if (!$query->have_posts()) { @@ -46,11 +35,8 @@ if (!$query->have_posts()) { return; } -$default_title = $is_resource_module ? __('最新资源', 'aksrt') : __('最新文章', 'aksrt'); -$display_title = $title ?: $default_title; -$archive_link = $is_resource_module - ? (function_exists('aksrt_resource_archive_url') ? aksrt_resource_archive_url() : home_url('/resources/')) - : get_permalink(get_option('page_for_posts')); +$display_title = $title ?: __('最新文章', 'aksrt'); +$archive_link = get_permalink(get_option('page_for_posts')); ?>