在安装完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. 前端跨平台调试代理神器Whistle

    概述 抓包一直是平时开发中经常要做的,有一款好用的抓包工具可以让开发体验更棒,以前一直用fiddler,fiddler虽然强悍,但是入手有一定难度,而且较笨重,今天介绍另一款抓包工具:Whistle. ...

  2. PCB设计AD规则设置(按照嘉立创设置)

    本文转载自https://blog.csdn.net/subtitle_/article/details/121648972 官方参考https://www.jlc.com/portal/vtechn ...

  3. 金Gien乐道 | 10月热点回顾

    ​ 收获之秋,中电金信Q4开篇捷报不断 ​ Q4开篇,中电金信迎来多个捷报.公司与青岛财通集团联合打造的核心业务系统(一体化业务平台)一期项目顺利投产上线并平稳运行:中标华南某全国性股份制商业银行新一 ...

  4. MAC brew install 跳过 update

    相信很多用 MAC 小伙伴的小伙伴都对 HomeBrew 很熟悉. 但是! 都遇到过这样的问题, 每次安装新东西, 它都要先去 update 一下, 那个耗时啊-. 怎么才能不 update, 直接安 ...

  5. Compile error: Cannot find a C++ compiler that supports both C++11 and the specified C++ flags

    reno@MyComputer:~/tools/cmake-3.12.4$ ./configure --------------------------------------------- CMak ...

  6. 管理员应了解的 SIEM解决方案七大功能 !

    ​SIEM解决方案已成为企业网络安全武器库中不可或缺的一部分.但由于SIEM功能过于复杂且架构难以理解,企业往往SIEM的潜在功能.遗憾的是,他们忽视的潜在功能正是解开企业网络合规的重要部分. 例如, ...

  7. Qt开源作品30-农历控件

    一.前言 农历控件在国产linux中必备的控件之一,毕竟要适应国人的习惯,你看win10系统的日历,现在点开来直接就有农历在上面,非常方便人性化,所以在很多用Qt做的项目中,也有农历控件的应用场景,而 ...

  8. 【吐血经验】在 windows 上安装 spark 遇到的一些坑 | 避坑指南

    在 windows 上安装 spark 遇到的一些坑 | 避坑指南 最近有个活:给了我一个阿里云桌面(windows 10系统),让我在上面用 scala + spark 写一些东西. 总是报错不断, ...

  9. IntelliJ IDEA2020永久激活破解教程(无限试用)

    IntelliJ IDEA2020激活破解教程(无限试用) 鉴于想拥有一个十分舒适的编程环境,我特意将自己的电脑运行内存从4G扩展到12G,加装一个256G的固态作为C盘,并且将系统升级为Window ...

  10. 压力测试-jmeter-copy

    1. 场景描述 新申请的服务器,要压测下python算法程序最多能执行多少条数据,有几年没用压力测试工具-jmeter了,重新下载了最新版本,记录下,也希望能帮到准备使用jmeter做压测的朋友. 2 ...