最合适的回答,由SO网友:Stephen M. Harris 整理而成
我从Wordpress中获取了示例代码user_has_cap filter codex page 并对其进行了修改。将此代码添加到主题函数中。php:
function restrict_editing_old_posts( $allcaps, $cap, $args ) {
// Bail out if we\'re not asking to edit or delete a post ...
if( ( \'edit_post\' != $args[0] && \'delete_post\' != $args[0] )
// ... or user is admin
|| ! empty( $allcaps[\'manage_options\'] )
// ... or user already cannot edit the post
|| empty( $allcaps[\'edit_posts\'] ) )
return $allcaps;
// Load the post data:
$post = get_post( $args[2] );
// Bail out if the post isn\'t published:
if( \'publish\' != $post->post_status )
return $allcaps;
$post_date = strtotime( $post->post_date );
//if post is older than 30 days ...
if( $post_date < strtotime( \'-30 days\' )
// ... or if older than 4 days and user is not Editor
|| ( empty($allcaps[\'moderate_comments\']) && $post_date < strtotime(\'-4 days\') ) ) {
$allcaps[$cap[0]] = FALSE;
}
return $allcaps;
}
add_filter( \'user_has_cap\', \'restrict_editing_old_posts\', 10, 3 );