Во-первых, используйте скобки, чтобы захватить только тот бит, который вам нужен, сам URL. Во-вторых, если вам нужно только первое изображение, просто используйте preg_match, а не preg_match_all:
$content = $post->post_content;
if (preg_match('/src=\"(https?:\/\/[\S\w]+)\"/i', $content, $match))
{
echo '<img src="http://site/scripts/timthumb.php?'.
urlencode($match[1]).'&h=320&w=214&zc=1" title="" alt="">';
}
Обратите внимание, как часть URL регулярного выражения помечена () - поскольку это первое выражение в скобках, это будет элемент 1 массива $ match.
Я также urlencoded код изображения URL, чтобы убедиться, что все в этом соответствии правильно закодированы для использования в URL.