it-swarm.com.de

Deaktivieren Sie Trackbacks/Pingbacks und Kommentare für alle vorhandenen Sites mit mehreren Sites

Ich möchte Trackbacks und Pingbacks deaktivieren. Gibt es eine Möglichkeit, sie für alle vorhandenen Posts und Seiten auf allen Sites innerhalb einer Installation mit mehreren Sites zu deaktivieren? Stellen Sie dann die Option ein, dass Trackback und Pingsbacks in der Einstellung für jede vorhandene Site nicht zulässig sind.

1
david

Dieser Code wurde in einem lokalen Multisite-Test getestet. Scheint in Ordnung, hat aber einen kleinen Fehler gefunden:
- Nach der Ausführung verschwinden alle Entwürfe/ausstehenden Posts von der Listenseite, werden aber nach einer Aktualisierung wieder angezeigt. Keine Ahnung, warum ...

Obwohl ich glaube, dass es ziemlich harmlos ist, sichern Sie bitte Ihre Datenbank, bevor Sie dies ausführen

/*
 * Turn off trackback/pingbacks and comments on all existing multisite sites
 *
 * Important: Run Only Once, visit any admin page and delete/disable the hook 
 * 
 */
add_action('admin_init','wpse_55209_run_only_once');
function wpse_55209_run_only_once()
{   
    global $wpdb;
    $blogs = $wpdb->get_results("
        SELECT blog_id
        FROM {$wpdb->blogs}
        WHERE site_id = '{$wpdb->siteid}'
        AND spam = '0'
        AND deleted = '0'
        AND archived = '0'
        AND mature = '0' 
        AND public = '1'
    ");

    foreach ($blogs as $blog) 
    {
        update_blog_option($blog->blog_id, 'default_ping_status', 'closed');
        update_blog_option($blog->blog_id, 'default_pingback_flag', 'closed');
        update_blog_option($blog->blog_id, 'default_comment_status', 'closed');
        switch_to_blog( $blog->blog_id );
        $wpdb->set_blog_id($blog->blog_id);
        $allposts = $wpdb->get_results("SELECT ID FROM $wpdb->posts WHERE post_status != 'inherit'" );
        foreach( $allposts as $pt )
        {
            $my_post = array();
            $my_post['ID'] = $pt->ID;
            $my_post['comment_status'] = 'closed';
            $my_post['ping_status'] = 'closed';
            wp_update_post( $my_post );
        }
    }
}
1
brasofilo