通过Notion查看本文 本文同步发布在j000e.com

<!-- index-menu -->

前言

本文实测基于Typecho版本1.2.0,Handsome主题版本9.0.2。

实现在文末显示本文链接一起版权声明。

方式一:同时具备原创&转载来源两种模式

来源:Typecho添加文章版权声明信息(多种方法)

我选择的就是这种方式并做了一些修改,该方式通过判断在文章编辑页面增加的转载来源字段是否为空来显示文章为原创或转载。

效果如下:

Untitled

Untitled

源码以及使用方法

打开主题目录下functions.php文件,搜索themeFields,在该函数的最后粘贴下面代码:

/*绑定控制面板以自动识别文章所添加版权类型*/
$copy_author = new Typecho_Widget_Helper_Form_Element_Text('copy_author', NULL, NULL, _t('转载作者'), _t('文章转载自哪个网站,若为原创则留空'));
$copy_author->input->setAttribute('class', 'w-100');
$copy_link = new Typecho_Widget_Helper_Form_Element_Text('copy_link', NULL, NULL, _t('转载链接'), _t('转载文章的链接,若为原创则留空'));
$copy_link->input->setAttribute('class', 'w-100');
$layout->addItem($copy_author);
$layout->addItem($copy_link);
/*绑定控制面板以自动识别文章所添加版权类型结束*/

打开主题目录下post.php文件,在该函数的合适位置(推荐:末尾)粘贴下面代码:

<!-- 文章版权说明-->
<?php if (($this->fields->copy_author) == ''): ?>
<div class="post-copyright" style="font-size:14.5px; line-height:30px">
&ensp;     <HR style="border:3 double #ff0000" width="100%" color=#ff0000 SIZE=3>
    <strong>最后修改:</strong><?php echo date(_mt("Y 年 m 月 d 日 h : i A") , $this->modified + $this->options->timezone - idate("Z"));?>。
    <br /> 
    <strong>本文链接:</strong><a href="<?php $this->permalink();?>" ><?php $this->permalink();?></a>
    <br /> 
    <strong>版权声明:</strong>本文【<a href="<?php $this->permalink();?>" title="固定链接" data-toggle="tooltip" data-placement="top"><?php $this->title();?></a>】为【<a href="<?php $this->options->siteUrl();?>" title="本文作者" data-toggle="tooltip" data-placement="top" ><?php $this->author();?></a>】原创。著作权归作者所有。
    <br /> 
    <strong>转载说明:</strong>【 <a href="<?php $this->permalink();?>" data-toggle="tooltip" data-placement="bottom" title="转载本文章名称"><?php $this->title();?> || <?php $this->options->title();?></a>】联系作者或者评论区留言授权,并注明转载地址。
    <HR style="border:3 double #ff0000" width="100%" color=#ff0000 SIZE=3>
</div>
<?php else: ?>
<div class="post-copyright">
    <HR style="border:3 double #ff0000" width="100%" color=#000000 SIZE=3>     
    <strong>最后修改:</strong><?php echo date(_mt("Y 年 m 月 d 日 h : i A") , $this->modified + $this->options->timezone - idate("Z"));?>。
    <br /> 
    <strong>本文链接:</strong><a href="<?php $this->permalink();?>" ><?php $this->permalink();?></a>
    <br /> 
    <strong>免责声明:</strong>本文主要内容转载自【<a href="<?php echo $this->fields->copy_link;?>" data-toggle="tooltip" data-placement="top" title="文章来源 <?php echo $this->fields->copy_link;?>"><?php echo $this->fields->copy_author;?></a>】,仅用于学习和交流,若有侵权请邮件联系本站!</li>
    <br />
    <strong>本站联系:</strong><a href="<?php $this->options ->siteUrl(); ?>about.html"> 关于我 </a></li>
    <HR style="border:3 double #ff0000" width="100%" color=#000000 SIZE=3> 
</div>
<?php endif;?>
<!-- 文章版权说明结束-->

在撰写文章时,特别是转载的文章,设置好转载作者和文章链接才可以切换到转载版权声明,不填写则视为原创文章;

我的基于Handsome主题使用方式&改写版本

Handsome主题的情况下需要在服务器编辑functions_mine.php文件(在网站根目录/usr/themes/handsome),搜索themeFields,将上述第一段代码放在//文章页面侧边栏缩略图上面}之前的位置。如图: