以下是我使用的:
function oenology_copyright() {
global $wpdb;
$copyright_dates = $wpdb->get_results("
SELECT
YEAR(min(post_date_gmt)) AS firstdate,
YEAR(max(post_date_gmt)) AS lastdate
FROM
$wpdb->posts
WHERE
post_status = \'publish\'
");
$output = \'\';
if($copyright_dates) {
$copyright = "© " . $copyright_dates[0]->firstdate;
if($copyright_dates[0]->firstdate != $copyright_dates[0]->lastdate) {
$copyright .= \'-\' . $copyright_dates[0]->lastdate;
}
$output = $copyright;
}
return $output;
}
当然,如果有更干净、更安全或更有效的方法,我也很想听听!
编辑:
还有一个更干净的版本,它将版权日期添加到wp\\U缓存中:
function oenology_copyright() {
// check for cached values for copyright dates
$copyright_cache = wp_cache_get( \'copyright_dates\', \'oenology\' );
// query the database for first/last copyright dates, if no cache exists
if ( false === $copyright_cache ) {
global $wpdb;
$copyright_dates = $wpdb->get_results("
SELECT
YEAR(min(post_date_gmt)) AS firstdate,
YEAR(max(post_date_gmt)) AS lastdate
FROM
$wpdb->posts
WHERE
post_status = \'publish\'
");
$copyright_cache = $copyright_dates;
// add the first/last copyright dates to the cache
wp_cache_set( \'copyright_dates\', $copyright_cache, \'oenology\', \'604800\' );
}
// Build the copyright notice, based on cached date values
$output = \'© \';
if( $copyright_cache ) {
$copyright = $copyright_cache[0]->firstdate;
if( $copyright_cache[0]->firstdate != $copyright_cache[0]->lastdate ) {
$copyright .= \'-\' . $copyright_cache[0]->lastdate;
}
$output .= $copyright;
} else {
$output .= date( \'Y\' );
}
return $output;
}
这会稍微提高性能吗?