文章修订信息插件

修订功能简介

使用短代码revision来在文章或页面中显示修订记录。

短代码标签间的内容为修订日期、修订内容,多个参数用”|”分隔。

示例

当传入一个参数:

[revision]2017/3/11[/revision]

效果:

最后修改于:2017/3/11


当传入两个参数:

[revision]2017/3/11|初始文章[/revision]

效果:

最后修改于:2017/3/11,初始文章。


传入两个以上参数:

[revision]2017/3/16|修正笔误|2017/3/15|增加一段|2017/3/11|初始文章[/revision]

效果:

最后修改于:2017/3/16 修订历史


默认展开修订记录:

[revision expand]2017/3/16|修正笔误|2017/3/15|增加一段|2017/3/11|初始文章[/revision]

效果:

最后修改于:2017/3/16 修订历史

修订日期 修订内容
2017/3/16 修正笔误
2017/3/15 增加一段
2017/3/11 初始文章

注意事项

  • 可以在参数中换行,但务必按Shift+Enter换。
  • 当传入空参数时,首尾的空参数会被忽略,中间的会留空相应位置。
  • 不传入参数或传入参数全为空,会留下文本”Revision: invalid arg!”

源码

在wp-content/plugins/下放入revison-info.php

<?php
/*
Plugin Name: Revision Info
Plugin URI: https://ciel.pro/revision-info-plugin/
Description: A plugin to show revision info in posts.
Author: Ciel Zhao
Version: 1.0
Author URI: https://ciel.pro/
*/

function revision($atts,$content=null)
{
	$content=explode('|',trim($content,'|'));
	if(empty($content[0]))return 'Revision: invalid arg!';

	$ret='<p>最后修改于:'.$content[0];
	if(count($content)>2)
	{
		$ret.='&emsp;<a onclick="jQuery(this).parent().next().toggle();">修订历史</a></p><table class="table table-striped"'.((empty($atts[0])||$atts[0]!='expand')?' style="display:none;"':'').'><thead><tr><th style="width:10em;">修订日期</th><th>修订内容</th></tr></thead><tbody>';
		while(!empty($content))
		{
			$ret.='<tr><td>'.array_shift($content).'</td><td>'.array_shift($content).'</td></tr>';
		}
		$ret.='</tbody></table>';
	}
	else
	{
		if(!empty($content[1]))$ret.=','.$content[1].'。';
		$ret.='</p>';
	}

	return $ret;
}
add_shortcode('revision','revision');

E N D

转载请注明作者并提供原文链接。
本作品采用 知识共享署名 4.0 国际许可协议 进行许可

Leave a Reply

Your email address will not be published. Required fields are marked *