You are here:  Home » PHP » 如何在设置的时间段后阻止WordPress发布更新和删除

管理多个作者的WordPress网站有时会很复杂。有一些插件可以管理编辑工作流程,但是您可能会遇到需要特定解决方案以更好地控制WordPress网站的情况。最近,我们帮助用户找到了这样的解决方案。他们想在一段时间后为所有用户(包括编辑)在一段时间后阻止WordPress发布更新和删除。例如,如果发布的帖子是30天或更早,则编辑者无法编辑或删除它。只有管​​理员才能修改该帖子。在本文中,我们将向您展示如何在WordPress中设置一段时间后阻止后期编辑,更新和删除。

Locking posts updates and deletion for older published posts in WordPress

您需要做的是在主题的functions.php文件中添加以下代码或者在特定于站点的插件中。


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;

    //if post is older than 30 days. Change it to meet your needs
    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天,则具有编辑帖子功能的用户仍可以对其进行编辑。注意:管理员可以随时编辑和删除帖子。

我们希望这篇文章可以帮助那些想要在一段时间后阻止WordPress中的编辑,更新和删除的人。你会在你的网站上做到这一点吗?你能看到类似这样的用例吗?请在下面的评论中告诉我们。

来源:
Smhmic

评论被关闭。