Files
argon-theme/template-parts/content-single.php
User 7dbf574338 fix: 代码格式优化和临时文件清理
- 优化多个模板文件的代码格式

- 清理 tmp 目录中的临时备份文件

- 统一代码风格,符合项目规范
2026-03-13 18:53:06 +08:00

240 lines
8.0 KiB
PHP

<article class="post post-full card bg-white shadow-sm border-0" id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<?php $show_thumbnail_in_banner = get_option('argon_show_thumbnail_in_banner_in_content_page', 'false'); ?>
<header class="post-header text-center<?php if (argon_has_post_thumbnail() && $show_thumbnail_in_banner != 'true'){echo " post-header-with-thumbnail";}?>">
<?php
if (argon_has_post_thumbnail() && $show_thumbnail_in_banner != 'true'){
$thumbnail_url = argon_get_post_thumbnail();
echo "<img class='post-thumbnail' src='" . $thumbnail_url . "'></img>";
echo "<div class='post-header-text-container'>";
}
if (argon_has_post_thumbnail() && $show_thumbnail_in_banner == 'true'){
$thumbnail_url = argon_get_post_thumbnail();
echo "
<style>
body section.banner {
background-image: url(" . $thumbnail_url . ") !important;
}
</style>";
}
?>
<a class="post-title" href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<div class="post-meta">
<?php
$metaList = explode('|', get_option('argon_article_meta', 'time|views|comments|categories'));
if (is_sticky() && is_home() && ! is_paged()){
array_unshift($metaList, "sticky");
}
if (post_password_required()){
array_unshift($metaList, "needpassword");
}
if (is_meta_simple()){
array_remove($metaList, "time");
array_remove($metaList, "edittime");
array_remove($metaList, "categories");
array_remove($metaList, "author");
}
for ($i = 0; $i < count($metaList); $i++){
if ($i > 0){
echo ' <div class="post-meta-devide">|</div> ';
}
echo get_article_meta($metaList[$i]);
}
?>
<?php if (!post_password_required() && get_option("argon_show_readingtime") != "false" && is_readingtime_meta_hidden() == False) {
echo get_article_reading_time_meta(get_the_content());
} ?>
<!-- 优雅内置的沉浸式阅读按钮 -->
<div class="post-meta-devide">|</div>
<div class="post-meta-detail post-meta-detail-immersive" id="immersive_read_toggle" title="<?php _e('沉浸阅读', 'argon'); ?>" style="cursor: pointer; transition: color 0.3s ease;">
<i class="fa fa-television immersive-read-icon-enter" aria-hidden="true"></i>
<span class="immersive-read-label"><?php _e('沉浸', 'argon'); ?></span>
</div>
</div>
<?php
if (has_post_thumbnail() && $show_thumbnail_in_banner != 'true'){
echo "</div>";
}
?>
</header>
<!-- 简约的顶部退出按钮 -->
<div id="immersive_exit_btn" class="immersive-exit-btn-container">
<button class="immersive-exit-btn-fast">
<i class="fa fa-compress" aria-hidden="true"></i> <?php _e('退出沉浸模式', 'argon'); ?>
</button>
</div>
<!-- 沉浸式阅读 JS -->
<script>
(function() {
var toggleBtn = document.getElementById('immersive_read_toggle');
var exitTopBtn = document.getElementById('immersive_exit_btn');
if (!toggleBtn) return;
var isActive = false;
function enterImmersive() {
if (isActive) return;
isActive = true;
document.documentElement.classList.add('immersive-read');
toggleBtn.classList.add('active');
toggleBtn.title = '<?php _e("退出沉浸", "argon"); ?>';
var icon = toggleBtn.querySelector('i.fa');
if (icon) {
icon.classList.remove('fa-television');
icon.classList.add('fa-compress');
}
var label = toggleBtn.querySelector('.immersive-read-label');
if (label) {
label.innerText = '<?php _e("退出", "argon"); ?>';
}
// 快速滚动到文章头部
var postContent = document.getElementById('post_content');
if (postContent) {
var rect = postContent.getBoundingClientRect();
var headerOffset = 20;
var scrollTarget = window.scrollY + rect.top - headerOffset;
window.scrollTo({ top: scrollTarget, behavior: 'smooth' });
}
if (exitTopBtn) {
exitTopBtn.classList.add('visible');
}
}
function exitImmersive() {
if (!isActive) return;
isActive = false;
document.documentElement.classList.remove('immersive-read');
toggleBtn.classList.remove('active');
toggleBtn.title = '<?php _e("沉浸阅读", "argon"); ?>';
var icon = toggleBtn.querySelector('i.fa');
if (icon) {
icon.classList.remove('fa-compress');
icon.classList.add('fa-television');
}
var label = toggleBtn.querySelector('.immersive-read-label');
if (label) {
label.innerText = '<?php _e("沉浸", "argon"); ?>';
}
if (exitTopBtn) {
exitTopBtn.classList.remove('visible');
}
}
toggleBtn.addEventListener('click', function(e) {
e.preventDefault();
isActive ? exitImmersive() : enterImmersive();
});
if (exitTopBtn) {
exitTopBtn.querySelector('button').addEventListener('click', function(e) {
e.preventDefault();
exitImmersive();
});
}
// Esc 快捷键支持
document.addEventListener('keydown', function(e) {
if (e.key === 'Escape' && isActive) exitImmersive();
});
// 滚动检测: 控制顶部退出按钮透明度防遮挡
var ticking = false;
window.addEventListener('scroll', function() {
if (!isActive || !exitTopBtn) return;
if (!ticking) {
ticking = true;
requestAnimationFrame(function() {
// 当滚动超过一定距离时,使其半透明,鼠标悬浮时恢复
exitTopBtn.classList.toggle('dimmed', window.scrollY > 200);
ticking = false;
});
}
}, { passive: true });
})();
</script>
<?php get_template_part('template-parts/ai-summary'); ?>
<div class="post-content" id="post_content">
<?php if (post_password_required()){ ?>
<div class="text-center container">
<form action="<?php echo $GLOBALS['wp_path']; ?>wp-login.php?action=postpass" class="post-password-form" method="post">
<div class="post-password-form-text"><?php _e('这是一篇受密码保护的文章,您需要提供访问密码', 'argon');?></div>
<div class="row">
<div class="form-group col-lg-6 col-md-8 col-sm-10 col-xs-12 post-password-form-input">
<div class="input-group input-group-alternative">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fa fa-key"></i></span>
</div>
<input name="post_password" class="form-control" placeholder="<?php _e('密码', 'argon');?>" type="password" value="<?php if (current_user_can('level_7')){global $post;if (isset($post -> post_password)){echo esc_attr($post->post_password);}} ?>">
</div>
<?php
$post_password_hint = get_post_meta(get_the_ID(), 'password_hint', true);
if (!empty($post_password_hint)){
echo '<div class="post-password-hint">' . $post_password_hint . '</div>';
}
?>
</div>
</div>
<input class="btn btn-primary" type="submit" name="Submit" value="<?php _e('确认', 'argon');?>">
</form>
</div>
<?php
}else{
echo argon_get_post_outdated_info();
global $post_references, $post_reference_keys_first_index, $post_reference_contents_first_index;
$post_references = array();
$post_reference_keys_first_index = array();
$post_reference_contents_first_index = array();
the_content();
}
?>
</div>
<?php
$referenceList = get_reference_list();
if ($referenceList != ""){
echo $referenceList;
}
?>
<?php if (get_option("argon_donate_qrcode_url") != '') { ?>
<div class="post-donate">
<button class="btn donate-btn btn-danger"><?php _e('赞赏', 'argon');?></button>
<div class="donate-qrcode card shadow-sm bg-white">
<img src="<?php echo get_option("argon_donate_qrcode_url"); ?>">
</div>
</div>
<?php } ?>
<?php
$additionalContentAfterPost = get_additional_content_after_post();
if ($additionalContentAfterPost != ""){
echo "<div class='additional-content-after-post'>" . $additionalContentAfterPost . "</div>";
}
?>
<?php if (has_tag()) { ?>
<div class="post-tags">
<i class="fa fa-tags" aria-hidden="true"></i>
<?php
$tags = get_the_tags();
foreach ($tags as $tag) {
echo "<a href='" . get_category_link($tag -> term_id) . "' target='_blank' class='tag badge badge-secondary post-meta-detail-tag'>" . $tag -> name . "</a>";
}
?>
</div>
<?php } ?>
</article>