I found the “issue”:
The event manager overrides the get_the_date hook
//Override post template tags
add_filter('get_the_date',array('EM_Event_Post','the_date'),10,3);
...
public static function the_date( $the_date, $d = '', $post = null ){
$post = get_post( $post );
if( $post->post_type == EM_POST_TYPE_EVENT ){
$EM_Event = em_get_event($post);
if ( '' == $d ){
$the_date = $EM_Event->start()->i18n(get_option('date_format'));
}else{
$the_date = $EM_Event->start()->i18n($d);
}
}
return $the_date;
}
...
public function start( $utc_timezone = false ){
return apply_filters('em_event_start', $this->get_datetime('start', $utc_timezone), $this);
}
And you use this function too! (…/class-dynamic-content-post.php)
case 'publish_date':
$result = get_the_date( isset( $args['format'] ) ? $args['format'] : get_option('date_format'), $post->ID );
Well, in my opinion WP-Event Manger acts wrong, because according to WordPress codex with the function get_the_date should actually always be delivered the post date and not the date of the event.
On the other hand, I also expect from Cornerstone to always provide the publish date with {{dc:post:publish_date}}
shortcode.