Hur man blockerar WordPress-uppdateringar och radering efter en viss period

Locking posts updates and deletion for older published posts in WordPress

Att hantera WordPress-webbplatsen med flera författare kan ibland vara komplicerat. Det finns plugins för att hantera redaktionellt arbetsflöde, men du kan stöta pÄ situationer dÀr du behöver specifika lösningar för bÀttre kontroll av din WordPress-webbplats. Nyligen hjÀlpte vi en anvÀndare att hitta en sÄdan lösning. De ville blockera WordPress-uppdateringar och radering efter en viss tidsperiod för alla anvÀndare (inklusive redaktörer) efter en viss tidsperiod. Till exempel, om ett publicerat inlÀgg Àr 30 dagar eller Àldre, kan det inte redigeras eller raderas av redaktörer. Endast administratörer kan Àndra det inlÀgget. I den hÀr artikeln visar vi dig hur du blockerar redigering, uppdateringar och radering efter en viss tidsperiod i WordPress.

Allt du behöver göra Àr att lÀgga till följande kod i ditt temas funktioner.php-fil eller i ett platsspecifikt plugin.



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 );


Denna funktion kontrollerar om anvÀndaren har möjlighet att redigera eller ta bort inlÀgg. DÀrefter kontrollerar den efter poststatus. Om ett inlÀgg publiceras och Àr Àldre Àn 30 dagar tas anvÀndarens förmÄga att redigera och ta bort inlÀgget bort. Om ett inlÀgg publiceras, men det inte Àr Àldre Àn 30 dagar, kan anvÀndare med möjlighet att redigera inlÀgg ÀndÄ redigera det. Obs! Administratörer kan redigera och radera inlÀgg nÀr som helst.

Vi hoppas att den hÀr artikeln hjÀlpte alla som vill blockera redigering, uppdatering och radering av inlÀgg i WordPress efter en viss tidsperiod. Skulle du nÄgonsin göra det pÄ din webbplats? Vilka anvÀndningsfall kan du se för nÄgot liknande detta? LÄt oss veta i kommentarerna nedan.

KĂ€lla:
Smhmic