Deaktivieren Sie Trackback / Pingbacks und Kommentare auf allen vorhandenen Multisite-Sites

Ich möchte Trackbacks und Pingbacks ablehnen. Gibt es eine Möglichkeit, sie auf allen vorhandenen Posts und Seiten auf allen Websites innerhalb einer Installation mit mehreren Standorten zu deaktivieren? Stellen Sie dann die Option ein, Trackback und Pingsback nicht in der Einstellung für jede vorhandene Site zuzulassen?

Solutions Collecting From Web of "Deaktivieren Sie Trackback / Pingbacks und Kommentare auf allen vorhandenen Multisite-Sites"

Dieser Code wurde in einer lokalen Multisite-Testumgebung getestet. Scheint in Ordnung, aber fand einen kleinen Fehler:
– Nach dem Ausführen verschwinden alle Entwürfe / ausstehenden Beiträge von der Eintragsseite, erscheinen aber nach einer Aktualisierung wieder, keine Ahnung warum …

Obwohl ich glaube, dass es ziemlich harmlos ist, bitte sichern Sie Ihre database, bevor Sie das 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 ); } } }