prefix . 'reported_posts';
$charset_collate = $wpdb->get_charset_collate();
// SQL für die Tabelle
$sql = "CREATE TABLE IF NOT EXISTS $table_name (
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
post_id BIGINT(20) NOT NULL,
report_date DATETIME DEFAULT CURRENT_TIMESTAMP,
reason TEXT NOT NULL,
name VARCHAR(255) NOT NULL,
status VARCHAR(20) DEFAULT 'reported',
user_id BIGINT(20) UNSIGNED DEFAULT NULL,
PRIMARY KEY (id),
KEY post_id (post_id),
KEY user_id (user_id)
) $charset_collate;";
// Tabelle zuerst erstellen bzw. aktualisieren - erst danach kann die
// Spaltenprüfung laufen (vorher schlug SHOW COLUMNS bei der Erstaktivierung fehl).
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql);
// Migration für Alt-Installationen: Spalte `name` ergänzen, falls sie fehlt
$columns = $wpdb->get_results("SHOW COLUMNS FROM $table_name");
$column_names = array_map(function($column) {
return $column->Field;
}, $columns);
if (!in_array('name', $column_names, true)) {
$wpdb->query("ALTER TABLE $table_name ADD COLUMN `name` VARCHAR(255) NOT NULL");
}
}
register_activation_hook(WP_MULTI_FILE, 'wp_stat_notice_create_reported_posts_table');
// Shortcode für den "Beitrag melden"-Button
function wp_stat_notice_report_button($atts) {
global $post;
if (!is_user_logged_in()) return '';
$atts = shortcode_atts(array('post_id' => $post->ID), $atts, 'report_button');
$nonce = wp_create_nonce('report_post_nonce');
// Report-Button & Eingabefelder für Name und Grund
ob_start();
?>
prefix . 'reported_posts';
// Abfrage, um die letzten 10 gemeldeten Beiträge zu holen
$reports = $wpdb->get_results(
"SELECT * FROM $table_name ORDER BY report_date DESC LIMIT 10"
);
if (empty($reports)) {
echo '
Es gibt keine gemeldeten Beiträge.
';
return;
}
// Tabelle mit den letzten 10 gemeldeten Beiträgen anzeigen
echo '