Move 288 types from global AKSRT_* + inc/classes manual requires into
namespace AKSRT\{Domain} under src/AKSRT/, wire composer.json psr-4,
and slim bootstrap to helpers/modules/hooks only. Split multi-class
widget/gateway files, update admin contract audit paths, and document
the layout in ADR/README.
69 lines
2.9 KiB
PHP
69 lines
2.9 KiB
PHP
<?php
|
|
/**
|
|
* Download Center Hero Section
|
|
*
|
|
* @package AKSRT
|
|
*/
|
|
|
|
defined('ABSPATH') || exit;
|
|
|
|
$page_title = get_the_title() ?: __('下载中心', 'aksrt');
|
|
$page_desc = get_the_excerpt() ?: __('浏览和下载本站提供的各类资源。', 'aksrt');
|
|
$current_filter = isset($_GET['resource_type']) ? sanitize_key((string) $_GET['resource_type']) : '';
|
|
$resource_type_labels = function_exists('aksrt_get_pay_types') ? aksrt_get_pay_types() : [];
|
|
unset($resource_type_labels[\AKSRT\Core\DomainModel::PAY_TYPE_READING]);
|
|
|
|
$resource_count_query = new WP_Query([
|
|
'post_type' => 'post',
|
|
'post_status' => 'publish',
|
|
'posts_per_page' => 1,
|
|
'fields' => 'ids',
|
|
'meta_query' => [
|
|
[
|
|
'key' => \AKSRT\Core\DomainModel::RESOURCE_MARKER_KEY,
|
|
'value' => '1',
|
|
],
|
|
],
|
|
]);
|
|
$total_published = (int) $resource_count_query->found_posts;
|
|
wp_reset_postdata();
|
|
?>
|
|
<div class="aksrt-download-hero">
|
|
<div class="aksrt-download-hero__bg"></div>
|
|
<div class="aksrt-download-hero__content">
|
|
<h1 class="aksrt-download-hero__title"><?php echo esc_html($page_title); ?></h1>
|
|
<?php if ($page_desc) : ?>
|
|
<p class="aksrt-download-hero__desc"><?php echo esc_html($page_desc); ?></p>
|
|
<?php endif; ?>
|
|
|
|
<div class="aksrt-download-hero__stats">
|
|
<div class="aksrt-download-hero__stat">
|
|
<span class="aksrt-download-hero__stat-num"><?php echo esc_html(number_format_i18n($total_published)); ?></span>
|
|
<span class="aksrt-download-hero__stat-label"><?php esc_html_e('资源总数', 'aksrt'); ?></span>
|
|
</div>
|
|
<?php if (!empty($resource_type_labels)) : ?>
|
|
<div class="aksrt-download-hero__stat">
|
|
<span class="aksrt-download-hero__stat-num"><?php echo esc_html(count($resource_type_labels)); ?></span>
|
|
<span class="aksrt-download-hero__stat-label"><?php esc_html_e('资源类型', 'aksrt'); ?></span>
|
|
</div>
|
|
<?php endif; ?>
|
|
</div>
|
|
|
|
<?php if (!empty($resource_type_labels)) : ?>
|
|
<div class="aksrt-download-hero__filters">
|
|
<a href="<?php echo esc_url(get_permalink()); ?>" class="aksrt-download-hero__filter<?php echo $current_filter === '' ? ' aksrt-download-hero__filter--active' : ''; ?>">
|
|
<?php esc_html_e('全部', 'aksrt'); ?>
|
|
</a>
|
|
<?php foreach ($resource_type_labels as $type_key => $type_label) : ?>
|
|
<a
|
|
href="<?php echo esc_url(add_query_arg('resource_type', $type_key, get_permalink())); ?>"
|
|
class="aksrt-download-hero__filter<?php echo $current_filter === $type_key ? ' aksrt-download-hero__filter--active' : ''; ?>"
|
|
>
|
|
<?php echo esc_html($type_label); ?>
|
|
</a>
|
|
<?php endforeach; ?>
|
|
</div>
|
|
<?php endif; ?>
|
|
</div>
|
|
</div>
|