Try this Dynamic Header plugin function:
get_media_header_url()
instead of this one:
show_media_header()
It is defined as
function get_media_header_url() {
global $post;
$post_id = $post->ID;
//Declare the wpdb var and table name and run the query to see if there is a media object associated with this post
global $wpdb;
$table_name = $wpdb->prefix . "custom_headers";
$check_q = $wpdb->get_row("SELECT * FROM $table_name WHERE post_id='$post_id' AND header_type="media" LIMIT 1");
//This large chunk of code determines what page we are on and whether to load a fixed or random header.
if(!is_home()){
if($check_q->url == 'Default' || $check_q->url == '') {
$initial_file_value = get_option('dhnd_default');
} else {
$initial_file_value = $check_q->url;
}
} else {
$initial_file_value = get_option('dhnd_homepage');
}
$load_this_media = process_media_header($initial_file_value);
return $load_this_media;
}
I found it in the plugin source code, provided by @s_ha_dum:
http://plugins.trac.wordpress.org/browser/dynamic-headers/tags/3.5.3/custom-header.php#L394
It has also the functions dh_get_page_image_url()
and dh_get_page_link_url()
.