Here are the different methods to make your fetch URL dynamic:
Method 1: Auto-detect Current Domain (Recommended for most cases)
javascriptconst apiUrl = `${window.location.protocol}//${window.location.hostname}${window.location.port ? ':' + window.location.port : ''}/wp-json/wp/v2/domain`;
Method 2: Environment-based Configuration
Perfect for development/staging/production environments:
javascriptconst CONFIG = {
development: 'http://domain.test/wp-json/wp/v2/domain',
production: 'https://yourdomain.com/wp-json/wp/v2/domain'
};
Method 3: WordPress Integration (Best for WordPress themes/plugins)
Add to your functions.php:
phpwp_localize_script('your-script', 'apiSettings', array(
'apiUrl' => home_url('/wp-json/wp/v2/domain')
));
Method 4: HTML Data Attributes
Add to your HTML:
html<div id="app" data-api-url="http://domain.test/wp-json/wp/v2/domain"></div>
Method 5: Quick Fix for Your Current Code
Fixed WordPress Domain Fetcher
Code ∙ Version 2
// Dynamic API URL – automatically uses current domain const apiUrl = `${window.location.protocol}//${window.location.hostname}${window.location.port ? ‘:’ + window.location.port : ”}/wp-json/wp/v2/domain`; // Fetch domain posts and transform data
Choose the method that best fits your use case:
- Method 1 (auto-detect) – Works great if your JavaScript runs on the same domain as WordPress
- Method 2 (environment config) – Perfect for multiple environments
- Method 3 (WordPress integration) – Best if you’re building a WordPress theme/plugin
- Method 4 (data attributes) – Good for flexibility without code changes
- Method 5 (quick fix) – Simplest solution for immediate use
The updated code now automatically detects your current domain and constructs the API URL dynamically, so it will work on domain.test, localhost, your production domain, or any other domain without changing the code.
