在安装完Typecho之后,第一件事应该就是想着如何去折腾了。对于个人博客而言,不希望自己辛辛苦苦写的文章,被别人转载或无脑采集,还不留原地址,所以就需要在文章的末尾地方放上一个版权声明,来提醒下转载者和无脑采集的人,也为网站增加一个流量渠道。为文章增加一个版权声明,实现的渠道有三种,手动添加,使用插件,修改主题文件(免插件)。

1.手动添加版权声明

手动添加版权声明指的是在每篇文章的末尾部分或者中间人为的主动的添加版权声明,如:

> **本文作者**:季春二九
> **本文链接**:Typecho 免插件实现版权声明 - https://blog.jichun29.cn/435.html
> **版权声明**:如无特别声明,本文即为原创文章,仅代表个人观点,版权归 季春二九 所有,未经允许不得转载!

实现效果:

本文作者:季春二九
本文链接:Typecho 免插件实现版权声明 - https://blog.jichun29.cn/435.html
版权声明:如无特别声明,本文即为原创文章,仅代表个人观点,版权归 季春二九 所有,未经允许不得转载!

优缺点:

手动添加的好处是随时随地都可以添加,并且完全自动化,坏处就是需要手动进行添加,难免会有遗漏的时候,显得略有麻烦。

2.插件

Copyright for Typecho
Yves X 写过一个插件 Copyright for Typecho,这是一个 Typecho 插件,通过自定义字段功能灵活的在文章或独立页面尾部显示版权小尾巴,就像这样:

版权属于:Yves X
原文链接: https://github.com/Yves-X/Copyright-for-Typecho
转载时须注明出处及本声明

安装与使用

下载安装插件:下载插件,将文件解压到 Typecho 根目录 /usr/plugins下,并将目录重命名为 Copyright
启用:登入 Typecho 后台,控制台 - 插件 - 启用
设置:在插件管理中看到的设置项为全局设置,你也可以通过自定义字段,对单个文章/独立页面进行特定设置。当然,特定设置的优先级始终高于全局设置。

更加详细的设置见 Github 主页。

下载地址

插件下载:点此下载

优缺点

使用插件的方式的优点是使用方便,可以自定义;缺点是只能显示的文章末尾,插件过多可能会影响页面加载速度。

3.免插件实现

其实,我们完全可以不用插件,通过在主题文件里加上一段代码就可以实现版权小尾巴。

定位

首先,我们要定位到需要修改的文件,Typecho 主题文件的 post.phppage.php分别对应文章模板和页面模板,所以根据需要决定改哪一个文件或者都改,我的建议是只在文章里添加版权小尾巴,即只修改 post.php

其次,我们要定位到需要修改的位置:文章输出的末尾,即在 Content 输出之后,一般放在 </article> 之前即可。在 Handsome 主题里,是在 Content::postContent 之后,其他主题模板也是类似

代码与实现

最后,奉上代码:

    <blockquote>
<strong>本文作者:</strong><a target="_blank" href="https://www.jichun29.cn">季春二九</a>
<br><br>
<strong>本文链接:</strong><a target="_blank" href="<?php $this->permalink() ?>"><?php $this->title() ?> - <?php $this->permalink() ?></a>
<br><br>
<strong>版权声明:</strong>如无特别声明,本文即为原创文章,仅代表个人观点,版权归 <a href="<?php $this->options->siteUrl(); ?>" target="_blank"><?$this->options->title();?></a> 所有,未经允许不得转载!
</blockquote>

效果见本文最后,其中几个关键参数是:<?php $this->permalink() ?></a> 输出文章永久链接;<?php $this->title() ?> 输出文章标题,其他的格式以及参数都可以自定义。

优缺点

这种实现的版权声明的方式简单粗暴,基本上是被写死的,灵活性相对差一些,只能在文章开头或末尾展现。当然,也可以通过自定义字段的形式对每篇文章的版权声明内容进行设置,这里就不过多展开,有需要的可以自行尝试。

Typecho实现版权声明的三种方式的更多相关文章

  1. JavaScript声明全局变量三种方式的异同

    JavaScript中声明变量很简单var(关键字)+变量名(标识符). 方式1 1 2 var test; var test = 5; 需注意的是该句不能包含在function内,否则是局部变量.这 ...

  2. js函数声明的三种方式

    1.直接声明 function box(num1,num2){ return num1+num2;}alert(box(1,2)); 2.使用变量初始化 var box2 = function(num ...

  3. JavaScript声明全局变量的三种方式

    JavaScript声明全局变量的三种方式   JS中声明全局变量主要分为显式声明或者隐式声明下面分别介绍. 声明方式一: 使用var(关键字)+变量名(标识符)的方式在function外部声明,即为 ...

  4. js声明变量的三种方式

    JS 声明变量的三种方式 (1)使用变量步骤:a.声明-->b.赋值-->3.调用 正确用法: <script type="text/javascript"> ...

  5. FastAPI中声明参数为必需的三种方式

    前提 有时候我们定义一些参数的时候,需要声明这个参数为必需,请求者必须传递该参数.FatstAPI中声明参数为必需的方式有三种,分别为:不设默认值.  "..." 和 " ...

  6. Linux就这个范儿 第18章 这里也是鼓乐笙箫 Linux读写内存数据的三种方式

    Linux就这个范儿 第18章  这里也是鼓乐笙箫  Linux读写内存数据的三种方式 P703 Linux读写内存数据的三种方式 1.read  ,write方式会在用户空间和内核空间不断拷贝数据, ...

  7. 于Unity3D动态创建对象和创建Prefab三种方式的原型对象

    于Unity3D动态创建对象和创建Prefab三种方式的原型对象 u3d在动态创建的对象,需要使用prefab 和创建时 MonoBehaviour.Instantiate( GameObject o ...

  8. 三种方式上传文件-Java

    前言:负责,因为该项目他(jetty嵌入式开始SpringMvc)实现文件上传的必要性,并拥有java文件上传这一块还没有被曝光.并 Http 更多晦涩协议.因此,这种渐进的方式来学习和实践上载文件的 ...

  9. SSH深度历险记(八) 剖析SSH核心原则+Spring依赖注入的三种方式

           于java发育.一类程序猿必须依靠类的其他方法,它是通常new依赖类的方法,然后调用类的实例,这样的发展问题new良好的班统一管理的例子.spring提出了依赖注入的思想,即依赖类不由程 ...

  10. ios学习网络------4 UIWebView以三种方式中的本地数据

    UIWebView这是IOS内置的浏览器.能够浏览网页,打开文档  html/htm  pdf   docx  txt等待格文档类型. safari浏览器是通过UIWebView制作. server将 ...

随机推荐

  1. 鸿蒙NEXT开发案例:保质期计算

    [引言] 保质期计算应用是一个基于鸿蒙NEXT框架开发的数字和文本统计组件.用户可以输入商品的生产日期和保质期天数,应用会自动计算并展示相关信息,包括保质状态.剩余天数.生产日期和到期日期. [环境准 ...

  2. VTK 9.2 Qt 5.14 安装及错误处理

    参考VTK9.1.0在Windows10+VS2019+Qt 5.15.2环境下编译安装以及VTK应用于QT_vtk-qt安装包_isongxw的博客-CSDN博客 安装注意:编译release和de ...

  3. idea左上角project一片绿的解决方法

    idea突然project底色一片绿,真的心里慌得一批.. 解决方法: 打开File-Settings,按图示找到地方,关闭FileColor,即可.

  4. COS 音视频实践|给你的视频加把锁

    导语 为了保障视频内容安全,防止视频被非法下载和传播,对象存储(Cloud Object Storage,COS)数据处理基于数据万象 CI 提供了 HLS 视频加密的功能,拥有相比于私有读文件更高的 ...

  5. M1芯片pod问题

    M1芯片pod问题 换了M1芯片的mac后,在Xcode跑项目报pod错误,提示run pod install更新pod,但是去终端跑命令时又报错 然后在github上看到一个老哥的方法 https: ...

  6. Flutter 滑动组件互相嵌套问题

    滑动组件互相嵌套问题 如果listview/singlechildscrollview 嵌套gridview,将两个组件的shrinkwrap设置为true,并且gridview无法滚动 physic ...

  7. 中电金信:从“互联网+”到“人工智能+”,TA也藏不住了!

    ​ 两会期间,人工智能频上头条 其中"人工智能+"首次进入2024政府工作报告 为人工智能产业的发展注入一剂强心针   从"互联网+"到"人工智能+& ...

  8. 【单片机】I/O口实验

    要求:拨动开关,让所亮小灯位置左移或者右移 #include <STC8.H> #include <intrins.h> void delay(){ int i,j; for( ...

  9. Qt数据库应用18-横向纵向排版

    一.前言 近期用户提了个需求,需要打印一个文档,要求其中部分页横向排版部分页面纵向排版,这个在之前的通用打印导出pdf类中是不具备的,通用的打印导出pdf只能统一设置一个排版方式,要么横向要么纵向,而 ...

  10. ubuntu opencv安装与卸载

    安装opencv 1.在下面网站上下载所需版本的源文件Releases - OpenCVhttps://opencv.org/releases/ 2.解压并进入该文件夹 3.命令行执行如下指令    ...