Files
SHITOUCUO/component/post-item-default.php
2026-02-19 13:14:46 +08:00

80 lines
3.4 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php if (!defined("__TYPECHO_ROOT_DIR__")) {
exit();
} ?>
<div class="flex flex-row wz" itemscope itemtype="https://schema.org/NewsArticle" style="border-radius:1rem;">
<div class=" flex flex-1 flex-col justify-between gap-y-3">
<?php
$thumbnail = getThumbnail($this->cid, "");
$autoThumbnailCategories = array('探店', '爸爸厨房', '户外'); // 需要自动获取封面的分类
// 获取当前文章的分类
$categories = $this->categories;
$currentCategory = '';
if (!empty($categories)) {
$currentCategory = $categories[0]['name'];
}
// 封面显示逻辑
$showThumbnail = false;
if ($thumbnail) {
// 如果有手动设置的封面,始终显示
$showThumbnail = true;
} elseif (in_array($currentCategory, $autoThumbnailCategories)) {
// 如果是指定分类且没有设置封面,从文章内容中提取第一张图片
preg_match_all('/<img.*?src=["\'](.*?)["\']/i', $this->content, $matches);
if (!empty($matches[1])) {
$thumbnail = $matches[1][0];
$showThumbnail = true;
}
}
if ($showThumbnail && $thumbnail): ?>
<a href="<?php $this->permalink(); ?>" title="<?php $this->title(); ?>" class="">
<img src="<?php echo $thumbnail; ?>" alt="<?php $this->title(); ?>" width="100%"
height="90"
class="h-[260px] rounded object-cover" loading="lazy"/>
</a>
<?php endif; ?>
<h2 class="jasmine-link-color-hover text-black line-clamp-1 text-xl jasmine-letter-spacing dark:text-neutral-200" itemprop="headline">
<?php echo getTimeLabel($this->date->timeStamp); ?>
<?php
// 从文章内容中统计图片标签
preg_match_all('/<img[^>]+>/i', $this->content, $matches);
$imageCount = count($matches[0]);
// 调试信息
if ($imageCount > 0) {
if ($imageCount < 20) {
echo '<span class="nwe">有图</span>';
} else {
echo '<span class="nwe">多图</span>';
}
}
?><a href="<?php $this->permalink(); ?>" class="ptitle" title="<?php $this->title(); ?>"><?php $this->title(); ?></a>
</h2>
<div class="dark:text-gray-400 tm-ca">
<span><i class="iconfont icon-zuozhe"></i> <a href="<?php $this->author->permalink(); ?> "><?php $this->author() ?></a></span>
<!--<span class="jasmine-link-color">--><span><i class="iconfont icon-fenlei"></i> <?php $this->category("·", true, "无"); ?></span>
<span> <i class="iconfont icon-shijian_o"></i> <?php echo date('Y-m-d H:i:s' , $this->created);?></span>
</div>
<p class="line-clamp-2 jasmine-letter-spacing dark:dark:text-gray-400 break-all" itemprop="abstract">
<a href="<?php $this->permalink(); ?>"
title="<?php $this->title(); ?>">
<!--摘要处理有自定义description字段显示自定义内容没有则按现有方式截取-->
<?php
// 检查是否有自定义description字段
$customDescription = $this->fields->description;
if (!empty($customDescription)) {
// 如果有自定义描述,直接显示
echo Typecho_Common::subStr(strip_tags($customDescription), 0, 100, '...');
} else {
// 如果没有自定义描述使用原有的excerpt方法
$this->excerpt(100, "");
}
?>
</a>
</p>
</div>
</div>