性价比最高的香港ASP、PHP主机提供商
做网站,就上凡科建站

WordPress 限定用户更新或删除文章的时间期限

Loading
0
Comodo SLL证书促销 - 免费ssl证书申请_ssl证书购买_ev ssl证书_https证书购买 - GDCA_数安时代

对于一个开放注册的多用户WordPress站点,默认情况下,有文章编辑权限的用户是可以更新和删除自己的文章的,如果我们要限制用户只在文章发布后的指定的时间段(比如30天)内才可以更新和删除文章,该如何实现呢?

block-wordpress-post-updates-and-deletion-wpdaxue

将下面的代码添加到当前主题的 functions.php 文件中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function wpbeginner_restrict_editing( $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;
 
    //如果文章超过30天。请根据自己的需要修改
    if( strtotime( $post->post_date ) < strtotime( '-30 day' ) ) {
        //Then disallow editing.
        $allcaps[$cap[0]] = FALSE;
    }
    return $allcaps;
}
add_filter( 'user_has_cap', 'wpbeginner_restrict_editing', 10, 3 );

上面的函数会检测用户是否有编辑和删除文章的能力,之后检测文章的发布状态,30天内,用户还可以编辑或删除该文章,如果超过30天,用户就没办法再更新或删除这篇文章(超级管理员还是可以编辑或删除所有文章的)。

参考资料:http://www.wpbeginner.com/wp-tutorials/how-to-block-wordpress-post-updates-and-deletion-after-a-set-period/

支付宝扫码打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者

MetInfo | 最适合企业网站建设的cms系统

关于 倡萌

一个疯狂的 WordPress 爱好者,喜欢折腾 WordPress 主题,分享 WordPress 资源。如果你也喜欢 WordPress,欢迎和我一起交流!

精彩推荐

WordPress 前台评论添加“删除”和“标识为垃圾”链接

WordPress 前台评论添加“删除”和“标识为垃圾”链接

修复积分插件 myCRED 日志时区相差8小时的问题

修复积分插件 myCRED 日志时区相差8小时的问题

1 条评论

  1. 请教怎么让评论者头像也加上alt标签呢? 用了内个头像本地化的代码喔

发表评论