Se wp_get_attachment_url for realmente uma URL que deve ser interpretada literalmente, use aspas simples para impedir que o shell interprete caracteres. Além disso, use a opção -F de grep para evitar que ela interprete o padrão como uma expressão regular.
http://example.com/?id=1 interpretado como uma expressão regular corresponderia a http://example.comid=1 ou http://example.com/id=1 , mas não http://example.com/?id=1 .
O comando se torna:
grep -rinF 'http://example.com/?id=1' *
Se o padrão contiver um ' , use '\'' para evitá-lo:
grep -rinF 'mornin'\'' all' *
Uma dica: * corresponde a todos os arquivos não ocultos no diretório atual. Se você quiser também combinar com os arquivos de pontos, basta usar o diretório atual recursivamente ( -r ):
grep -rinF 'search term' .