trim($_POST['wp_host'] ?? ''), 'database' => trim($_POST['wp_database'] ?? ''), 'username' => trim($_POST['wp_username'] ?? ''), 'password' => $_POST['wp_password'] ?? '' ]; // Validate required fields if (empty($wpConfig['host']) || empty($wpConfig['database']) || empty($wpConfig['username'])) { throw new Exception("WordPress database configuration is required. Please provide host, database, and username."); } // Direct WordPress connection test (exactly same as minimal test) $options = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_TIMEOUT => 10, PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4" ]; $dsn = "mysql:host={$wpConfig['host']};dbname={$wpConfig['database']};charset=utf8mb4"; $wpDb = new PDO($dsn, $wpConfig['username'], $wpConfig['password'], $options); // Test connection $wpDb->query("SELECT 1"); // Get stats with direct queries (exactly same as minimal test) try { $stats['posts'] = $wpDb->query("SELECT COUNT(*) FROM wp_posts WHERE post_type = 'post'")->fetchColumn(); } catch (Exception $e) { $stats['posts'] = 0; } try { $stats['categories'] = $wpDb->query("SELECT COUNT(*) FROM wp_term_taxonomy WHERE taxonomy = 'category'")->fetchColumn(); } catch (Exception $e) { $stats['categories'] = 0; } try { $stats['users'] = $wpDb->query("SELECT COUNT(*) FROM wp_users")->fetchColumn(); } catch (Exception $e) { $stats['users'] = 0; } try { $stats['comments'] = $wpDb->query("SELECT COUNT(*) FROM wp_comments")->fetchColumn(); } catch (Exception $e) { $stats['comments'] = 0; } $message = "WordPress connection successful: Posts: {$stats['posts']}, Categories: {$stats['categories']}, Users: {$stats['users']}, Comments: {$stats['comments']}"; } catch (Exception $e) { $message = "WordPress connection failed: " . $e->getMessage(); } } ?>
Test connection to your WordPress database to import posts, categories, users, and comments.
For actual importing, use the AJAX import tool which provides step-by-step import functionality:
AJAX Import Tool