In this answer to a question about getting Biblatex to print the ISSN field for books, I suggest a solution which uses the \xpatchbibdriver command of the xpatch package:
\xpatchbibdriver{book}{%
{\printfield{isbn}}
}{%
{\printfield{issn}\newunit\newblock\printfield{isbn}}
}{}{}
A problem with my answer is that the patch needs to be applied separately for each book-like bibliography type (book, collection, proceedings, incollection, inproceedings, etc.).
Is there a nicer way to patch all the entries at once? I'm vaguely familiar with the \foreach command of the pgffor package, but the following naïve usage of it doesn't work, probably because it \i doesn't get expanded before getting passed to \xpatchbibdriver:
\usepackage{pgffor}
\foreach \i in {incollection,proceedings,book,inproceedings}{%
\xpatchbibdriver{\i}{%
{\printfield{isbn}}
}{%
{\printfield{issn}\newunit\newblock\printfield{isbn}}
}{}{}
}
Is there a way I can force the expansion of \i? Do I need an \expandafter in here somewhere? (Alternatively, is there an even better way of doing what I'm doing without using pgffor and/or xpatch?)