it-swarm.com.de

Wie kann ich verhindern, dass ein Beitrag gelöscht wird?

Aus Gründen der Wirtschaftsprüfung möchte ich nur, dass ein Beitrag gelöscht, aber nicht gelöscht wird - für alle Benutzer.

Also ich habe ein Plugin wie

add_action('before_delete_post', function($id) {
        wp_die(0);
    });

Aber anscheinend sind nicht alle Löschaktionen ajax, so dass ein schwarzer Bildschirm angezeigt wird und eine Fehlerseite mit dem Ergebnis "0" zurückgegeben wird.

Funktion weise ist der obige Code in Ordnung, aber gibt es einen besseren Weg?

8
Yoga

Lass die Action nicht sterben, sondern leite sie einfach weiter (wohin du willst):

function wpse_92155_before_delete_post() {
    wp_redirect(admin_url('edit.php'));
    exit();
} // function wpse_92155_before_delete_post
add_action('before_delete_post', 'wpse_92155_before_delete_post', 1);
8
tfrommen

Ich würde den Haken before_delete_post als letzte Ebene zum Schutz vor dem Löschen verwenden (unter Verwendung der @ tf-Lösung, und welche ist die richtige Antwort).

Und entfernen Sie zuerst die "Löschen" -Optionen aus den Augen. Im Folgenden werden die Schaltflächen Massenaktionen und Papierkorb leeren ausgeblendet und Dauerhaft löschen Zeilenaktion entfernt.

before

Mit diesem Code:

add_action( 'admin_head-edit.php', 'hide_delete_css_wpse_92155' );
add_filter( 'post_row_actions', 'hide_row_action_wpse_92155', 10, 2 );
add_filter( 'page_row_actions', 'hide_row_action_wpse_92155', 10, 2 );

function hide_delete_css_wpse_92155()
{
    if( isset( $_REQUEST['post_status'] ) && 'trash' == $_REQUEST['post_status'] ) 
    {
        echo "<style>
            .alignleft.actions:first-child, #delete_all {
                display: none;
            }
            </style>";
    }
}

function hide_row_action_wpse_92155( $actions, $post ) 
{
    if( isset( $_REQUEST['post_status'] ) && 'trash' == $_REQUEST['post_status'] ) 
        unset( $actions['delete'] );

    return $actions; 
}

Das ist das Ergebnis:

after

Bemerkung von Interesse

Es gibt keinen Haken cpt_row_actions. Die Haken page_row_actions und post_row_actions werden angewendet, wenn der Beitragstyp hierarchisch ist oder nicht .

5
brasofilo