Mit folgendem PHP-Code lassen sich die Kommentare für alle Beiträge, Seiten und andere Post Types nachträglich deaktivieren:
<?php // Kommentare und Pingbacks für alle Posts deaktivieren // Test: https://www.example.com/?db_update=close_ping_status_and_comments // Ausführen: https://www.example.com/?db_update=close_ping_status_and_comments&execute=1 if(isset($_GET['db_update']) and $_GET['db_update']=='close_ping_status_and_comments') { global $wpdb; header('Content-Type: text/plain; charset=utf-8'); // Tabellen-Präfix der WordPress-Datenbank bestimmen $table_prefix = 'wp_'; // WordPress-Multisite: Tabellen für alle Website selectieren $tables = $wpdb->get_col("SHOW TABLES LIKE '{$table_prefix}%_posts'"); $tables = array_filter($tables, function($table) { return preg_match('/^wp_(\d+_)?posts$/', $table); }); // Tabelle 'wp_posts' ergänzen $tables[] = $table_prefix . 'posts'; // ping_status und comment_status für Tabellen aktualisieren foreach ($tables as $table) { if(isset($_GET['execute'])) { echo("Aktualisiere Tabelle: ".$table."\n"); $wpdb->query("UPDATE $table SET ping_status='closed', comment_status='closed'"); } else echo("zu aktualisierende Tabelle: ".$table."\n"); } exit(); }
Das Besondere: Der PHP-Code funktioniert auch für WordPress-Multisite-Installationen.