Skip to main content
Glama
wordpress-test-init.php3.56 kB
<?php /** * WordPress Test Environment Initialization * This mu-plugin automatically sets up WordPress for testing */ // Wait for WordPress to be fully loaded add_action('init', function() { // Create test user with application password if not exists $username = 'testuser'; $email = 'test@example.com'; if (!username_exists($username)) { $user_id = wp_create_user($username, 'test-password-123', $email); if (!is_wp_error($user_id)) { // Make the user an administrator $user = new WP_User($user_id); $user->set_role('administrator'); // Enable application passwords for this user update_user_meta($user_id, '_application_passwords_permissions', array( 'read' => true, 'write' => true, 'delete' => true )); // Create an application password $app_password = WP_Application_Passwords::create_new_application_password($user_id, array( 'name' => 'Test Application', 'app_id' => 'test-app-123' )); if (!is_wp_error($app_password)) { // Log the application password for tests to use error_log('Test User Created: ' . $username); error_log('Application Password: ' . $app_password[0]); // Store in option for easy retrieval update_option('test_app_password', $app_password[0]); update_option('test_user_id', $user_id); } } } // Create some test content if (wp_count_posts()->publish < 2) { // Create test posts wp_insert_post(array( 'post_title' => 'Test Post 1', 'post_content' => 'This is test content for post 1', 'post_status' => 'publish', 'post_author' => get_option('test_user_id', 1) )); wp_insert_post(array( 'post_title' => 'Test Post 2', 'post_content' => 'This is test content for post 2', 'post_status' => 'publish', 'post_author' => get_option('test_user_id', 1) )); } // Ensure REST API is enabled add_filter('rest_enabled', '__return_true'); add_filter('rest_jsonp_enabled', '__return_true'); // Fix REST API authentication for Apache if (!isset($_SERVER['HTTP_AUTHORIZATION']) && isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])) { $_SERVER['HTTP_AUTHORIZATION'] = $_SERVER['REDIRECT_HTTP_AUTHORIZATION']; } }); // Output test credentials on admin dashboard add_action('admin_notices', function() { $app_password = get_option('test_app_password'); if ($app_password) { echo '<div class="notice notice-info"><p>'; echo '<strong>Test Credentials:</strong><br>'; echo 'Username: testuser<br>'; echo 'App Password: ' . esc_html($app_password) . '<br>'; echo 'Use these for API testing'; echo '</p></div>'; } }); // REST API endpoint to get test credentials add_action('rest_api_init', function() { register_rest_route('test/v1', '/credentials', array( 'methods' => 'GET', 'callback' => function() { return array( 'username' => 'testuser', 'app_password' => get_option('test_app_password', ''), 'user_id' => get_option('test_user_id', 0), 'site_url' => get_site_url() ); }, 'permission_callback' => '__return_true' )); });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/docdyhr/mcp-wordpress'

If you have feedback or need assistance with the MCP directory API, please join our Discord server