prova ad aggiungere la clausola HAVING...

codice:
        $q = <<<SQL
        SELECT DISTINCT p.*, count(p2t.post_id) as cnt
             FROM $tablepost2tag p2t, $tabletags t, $wpdb->posts p
             WHERE p2t.tag_id = t.tag_id
             AND p2t.post_id = p.ID
             AND (t.tag IN ($taglist))
             AND post_date_gmt < '$now'
             AND $typelimitsql
             $notclause
             GROUP BY p2t.post_id
             HAVING cnt > 1
             ORDER BY cnt DESC, post_date_gmt DESC
             $limitclause
SQL;
occhio a modificare la sintassi heredoc... a non lasciare spazi in fondo dopo SQL;