首页 > 分类 > 网络百科 > 文章内容

图纸如绘画

WordPress 官方网站搜索页面的页脚处写着一行字:“CODE IS POETRY”,短短几个单词,代码如诗歌,却流露着一股对事业的骄傲与挚爱之情。庸俗地套用一下句式到自己的工作上:DRAWING IS PAINTING,图纸如绘画,却总感觉味道和原句差了点什么,形似神不似。到底少了什么,答案浅显,所以一小会儿就想到了,但这里最好还是用此处无声胜有声的一句“吾知而吾不言”填空。

说了半截 drawing,最后还是回到 coding。翻了几篇鸟语文献,今天敲了十几行代码,把页脚处版权信息部分的输出给动态化了,目前实现的效果,逻辑是:

一、网站建站后未发布过文章

“我的网站刚刚成立,把 WordPress 自动生成的第一篇文章删掉,打算自己发。”这时网站上没有任何文章,那就只能输出当前年份,形如:Copyright © 2016 Google.

二、网站建站后发布过文章

1. 首篇文章发布时间为当前年份

“Blog 是年初搭建的,现在才几个月,文章也就十几篇吧。”这时建站时间和首篇文章时间是同一年,输出的效果同“一、”;

2. 首篇文章发布时间早于当前年份

“前两年就开始写博了,毅力大大的有,迄今狂发一千零一篇日志。”这时在页脚同时列出首篇文章的发布年份与当前年份,形如:Copyright © 1998–2016 Google.

既然“CODE IS POETRY”,那么诗文是这样的:

function blog_copyright_text() {
	$this_year = (int) date( 'Y' );
	$first_post = get_posts(
		array(
			'numberposts' => 1,
			'order'       => 'ASC',
		)
	);
	$first_post_year = (int) mb_strimwidth( $first_post[0]->post_date, 0, 4 );
	$start_year = $first_post ? $first_post_year : $this_year;
	$copy_text = 'Copyright © ';
	if ( $this_year > $start_year ) {
		$copy_text .= $start_year . '–;';
	}
	$copy_text .= $this_year . ' ' . get_bloginfo( 'name' ) . '.';
	echo $copy_text;
}

对于“二、2.”所述情况,演示请看本站页脚效果“Copyright © 2012–2016 SYS 棚户区.”,其他情况可以自行实践,还是将代码贴到 functions.php 里,在页脚 footer.php 相应位置祭出 blog_copyright_text() 即可调用。另外,由于时间都是自动随年份更新,这个办法对懒人或者几年不更新的站极为适用,但对于服务器,效率最高的无疑还是直接把版权信息静态写到文件里输出。

/* edit @ 2016-08-14 */

稍微改动下,替换获取当前时间的 PHP 原生函数为 WordPress 原生函数。旧版不删,新版如下:

function blog_copyright_text() {
	$copyright_text = 'Copyright © ';
	$this_year = (int) current_time( 'Y' );

	$first_post = get_posts(
		array(
			'numberposts' => 1,
			'order'       => 'ASC',
		)
	);
	if ( $first_post ) {
		$start_year = (int) get_the_time( 'Y', $first_post[0] );
		if ( $this_year > $start_year ) {
			$copyright_text .= $start_year . '–';
		}
	}

	$copyright_text .= $this_year . ' ' . get_bloginfo( 'name' ) . '.';
	echo $copyright_text;
}
您可能还会对这些文章感兴趣
评论总数 2(访客评论 1 / 作者评论 1)
发表评论

您的电子邮箱地址不会被公开。必填项已用 * 标注

你好,新朋友!

emojiemojiemojiemojiemojiemojiemojiemojiemojiemojiemojiemojiemojiemojiemojiemojiemojiemojiemojiemojiemojiemoji