Category accordion + AJAX cat/search posts for documentnav; archives month lists with view/comment/like meta, sidebar and comments shell.
117 lines
4.1 KiB
PHP
117 lines
4.1 KiB
PHP
<?php
|
|
/**
|
|
* Template Name: AKSRT - 文档导航
|
|
* Template Post Type: page
|
|
*
|
|
* Zibll pages/documentnav.php 1:1 — category accordion + search + AJAX posts.
|
|
*
|
|
* @package AKSRT
|
|
*/
|
|
|
|
defined('ABSPATH') || exit;
|
|
|
|
use AKSRT\Core\DocumentNav;
|
|
|
|
$post_id = (int) get_queried_object_id();
|
|
$opt = class_exists(DocumentNav::class)
|
|
? DocumentNav::get_options($post_id)
|
|
: ['cat' => 0, 'initial_content' => 'updated_posts'];
|
|
$one_cat = (int) ($opt['cat'] ?? 0);
|
|
$initial = (string) ($opt['initial_content'] ?? 'updated_posts');
|
|
|
|
get_header();
|
|
?>
|
|
<main class="container page-template-documentnav">
|
|
<div class="content-wrap">
|
|
<div class="content-layout">
|
|
<div class="theme-box radius8 main-bg main-shadow box-body mb20">
|
|
<h1 class="article-title"><?php echo esc_html(get_the_title() ?: __('文档导航', 'aksrt')); ?></h1>
|
|
</div>
|
|
|
|
<div class="row document-nav-row">
|
|
<div class="col-sm-4 document-nav-aside">
|
|
<div class="theme-box zib-widget dosc-nav document-nav">
|
|
<?php
|
|
if ($one_cat > 0 && class_exists(DocumentNav::class)) {
|
|
$open = true;
|
|
echo DocumentNav::render_panels($one_cat, 'accordion', 'panel', $open); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
|
} elseif (current_user_can('edit_pages')) {
|
|
echo '<p class="muted-2-color box-body">' . esc_html__('请在页面设置中选择一级分类。', 'aksrt') . '</p>';
|
|
} else {
|
|
echo '<p class="muted-2-color box-body">' . esc_html__('暂无文档分类', 'aksrt') . '</p>';
|
|
}
|
|
?>
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-8 document-nav-main" role="main">
|
|
<div class="theme-box zib-widget document-search relative-h">
|
|
<form class="document-search-form" action="javascript:;" method="get">
|
|
<div class="line-form">
|
|
<input type="search" name="s" class="line-form-input document-search-input" placeholder="<?php esc_attr_e('搜索文档…', 'aksrt'); ?>" autocomplete="off" required minlength="2">
|
|
<button type="submit" class="abs-right null" aria-label="<?php esc_attr_e('搜索', 'aksrt'); ?>">
|
|
<i class="fa fa-search" aria-hidden="true"></i>
|
|
</button>
|
|
</div>
|
|
</form>
|
|
<div class="history-search mt10">
|
|
<div>
|
|
<?php
|
|
if (class_exists(DocumentNav::class)) {
|
|
echo DocumentNav::get_instance()->history_buttons_html(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
|
}
|
|
?>
|
|
</div>
|
|
</div>
|
|
<div class="search-loading absolute main-bg flex jc" hidden>
|
|
<i class="loading mr10 em12" aria-hidden="true"></i> <?php esc_html_e('正在搜索', 'aksrt'); ?>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="document-nav-container" data-one-cat="<?php echo (int) $one_cat; ?>">
|
|
<?php
|
|
if ($initial === 'page_content') {
|
|
while (have_posts()) {
|
|
the_post();
|
|
echo '<div class="nopw-sm box-body theme-box radius8 main-bg main-shadow">';
|
|
echo '<article class="article wp-posts-content">';
|
|
the_content();
|
|
echo '</article></div>';
|
|
}
|
|
} elseif ($one_cat > 0 && class_exists(DocumentNav::class)) {
|
|
$args = [
|
|
'cat' => $one_cat,
|
|
'order' => 'DESC',
|
|
'orderby' => 'modified',
|
|
'posts_per_page' => 12,
|
|
'no_found_rows' => true,
|
|
'ignore_sticky_posts' => true,
|
|
'post_status' => 'publish',
|
|
];
|
|
if ($initial === 'date_posts') {
|
|
$args['orderby'] = 'date';
|
|
} elseif ($initial === 'views_posts') {
|
|
$args['orderby'] = 'meta_value_num';
|
|
$args['meta_key'] = 'aksrt_post_views';
|
|
}
|
|
$q = new WP_Query($args);
|
|
echo DocumentNav::render_posts_html($q); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
|
} else {
|
|
echo '<div class="zib-widget"><p class="muted-2-color text-center">' . esc_html__('请配置文档分类', 'aksrt') . '</p></div>';
|
|
}
|
|
?>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<?php
|
|
if (comments_open() || get_comments_number()) {
|
|
comments_template();
|
|
}
|
|
?>
|
|
</div>
|
|
</div>
|
|
<?php get_sidebar(); ?>
|
|
</main>
|
|
<?php
|
|
get_footer();
|