При вызове $post->post_content не будут работать шорткоды. Это сразу текст в бд без всяких обработок. Выводить пост нужно через луп, как в документации и через the_content(); тогда все будет работать.
Но можно и так:
echo apply_filters('the_content', $post->post_content);
wordpress.stackexchange.com/questions/47985/post-p...
stanislav.it/execute-shortcodes-inside-custom-fiel...