怎样让typecho在首页的文章只显示摘要?

impig33
  • 709

就是上面的意思,谢谢

回复
阅读 10.3k
5 个回答

登录到后台-控制台-外观-编辑当前外观:
编辑文件 archive.php
编辑文件 index.php

修改两处分别找到:
/ 默认显示的是全文 /

<?php $this->content('- 阅读剩余部分 -'); ?>

替换成(概要取300字):
/ 自定义输出,如 300个字符 /

<?php $this->excerpt(300,'- 阅读剩余部分 -'); ?>

修改typecho首页显示文章的数量:
编辑文件 functions.php
在末尾添加:

/* 自定义首页文章分布数量,如 10 */
function themeInit($archive) {
if ($archive->is('index')) {
$archive->parameter->pageSize = 10;
}
}

<?php $this->excerpt(30, '...'); ?>
//30代表显示的字数

参考禾令奇的首页

在需要截取的地方加上

<!--more-->

官方用法

Typecho 默认的逻辑是用户自己决定摘要的内容。

首先在后台打开阅读设置,仅摘要输出,然后发布文章的时候在摘要结尾添加标识符(编辑器上有此功能) <!--more-->


根据长度截取摘要

如果文章不是自己编辑,通过采集或者复制过来的,就不能保证文章具有摘要标识,这时候就需要运维人员修改主题模板自定义输出。为了兼容官方的逻辑同时能截取摘要长度,可以做一个逻辑判断。

// 将原主题文件 archive.php 中的
<?php $this->content('- 阅读剩余部分 -'); ?>
// 替换成
<?php
    $length = 100;              // 截取长度
    $more = "- 阅读剩余部分 -";  // 显示符
    $more = "<p class=\"more\"><a href=\"{$this->permalink}\" title=\"{$this->title}\">{$more}</a></p>";
    false !== strpos($this->text, '<!--more-->') ?
    echo $this->excerpt . $more : $this->excerpt($length, $more);
?>

在编写文章的时候插入一个摘要分割线即可,在默认编辑器上是有这个按钮的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏