The do_shortcode
function runs on the the_content
hook:
402 403 add_filter('the_content', 'do_shortcode', 11); // AFTER wpautop()
https://core.trac.wordpress.org/browser/tags/4.1.1/src/wp-includes/shortcodes.php#L403
So, without seeing your theme code I am going to guess that your theme’s archive page is written in such a way that the do_shortcode
function does not fire– possibly because it uses the_excerpt
instead of the_content
. If that is the case, you can force the processing of shortcodes with:
add_filter('the_excerpt', 'do_shortcode');
However, you will need to watch that as some shortcodes may generate content that you don’t want in the excerpts.