在設定時間後如何阻止WordPress發布更新和刪除


由多個作者管理WordPress網站有時可能會很複雜。 有一些插件可以管理編輯工作流程,但是您可能會遇到需要特定解決方案以更好地控制WordPress網站的情況。 最近,我們幫助用戶找到了這樣的解決方案。 他們希望在設定的時間段後阻止所有用戶(包括編輯者)在指定時間段後WordPress帖子的更新和刪除。 例如,如果已發布的帖子已超過30天,則編輯者將無法對其進行編輯或刪除。 只有管​​理員可以修改該帖子。 在本文中,我們將向您展示如何在WordPress設置的一段時間後阻止帖子的編輯,更新和刪除。

鎖定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