refactor(admin): remove content-type resource/post module option

This commit is contained in:
2026-07-13 23:59:32 +08:00
parent 1af0e9b753
commit fb1a4e110c
6 changed files with 22 additions and 100 deletions
@@ -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');
?>
<section class="home-module home-module--hotspot hotspot--desktop-only" aria-label="<?php echo esc_attr($display_title); ?>">
@@ -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':
+4 -18
View File
@@ -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'));
?>
<section class="home-module home-module--recent container" aria-label="<?php echo esc_attr($display_title); ?>">