So there are often times you would like to have settings in the WordPress dashboard but use the data in a js file. I found that this can easily be done using a jQuery.post call to a WordPress Ajax url.
/* Javascript file */
var site_url = '';
jQuery( document ).ready(function() {
var data = {
'action' : 'dynamic_data' //this is the action of the wp_ajax call in this example
}
jQuery.post( "/wp-admin/admin-ajax.php", data, function( response ) {
site_url = response;
});
});
// can be placed in the child theme's functions.php file.
function dynamic_data_js_return() {
//in this example I am returning the site_url
echo site_url();
die(); //important to have this otherwise your data could get additional characters added to the end of it.
}
add_action('wp_ajax_dynamic_data', 'dynamic_data_js_return');
add_action('wp_ajax_nopriv_dynamic_data', 'dynamic_data_js_return');