get_post_meta
as seen here is nothing more than a wrapper for get_metadata
. Now when you say the meta you’re getting back, if its not null but rather an empty string, it means you’re hitting the end of get_metadata
as seen here. With true defined as the third variable of your get_post_meta call, you should be seeing an empty string if this is the case. If you change it to false, you should see an empty array.
Now to the issue of why you’re at the bottom of get_metadata.
Based on what I can see, the only way to get there is that you don’t actually have a post_meta_field called “ch_event_date” defined for that post_object.
Perhaps, try doing this right above your call to get “ch_event_date” as a test:
update_post_meta($post_id,'ch_event_date', 'Chris figured it out');
Then dump that get_post_meta call.