prefix) === 0) { $table = $tableName; // Already has prefix } else { $table = $wpdb->prefix . $tableName; // Add prefix } $table = esc_sql($table); $columnName = esc_sql($columnName); // Check if slug exists $query = $wpdb->prepare( "SELECT COUNT(*) FROM `{$table}` WHERE `{$columnName}` = %s", $slug ); // Exclude current ID if updating if ($excludeId !== null) { $query = $wpdb->prepare( "SELECT COUNT(*) FROM `{$table}` WHERE `{$columnName}` = %s AND id != %d", $slug, $excludeId ); } $exists = (int) $wpdb->get_var($query) > 0; if (!$exists) { return $slug; } // Try appending numbers until we find a unique slug $counter = 1; $uniqueSlug = $slug . '-' . $counter; while (true) { $checkQuery = $wpdb->prepare( "SELECT COUNT(*) FROM `{$table}` WHERE `{$columnName}` = %s", $uniqueSlug ); if ($excludeId !== null) { $checkQuery = $wpdb->prepare( "SELECT COUNT(*) FROM `{$table}` WHERE `{$columnName}` = %s AND id != %d", $uniqueSlug, $excludeId ); } $exists = (int) $wpdb->get_var($checkQuery) > 0; if (!$exists) { return $uniqueSlug; } $counter++; $uniqueSlug = $slug . '-' . $counter; } } }